CentOS/RHEL ci fornisce un semplice strumento da riga di comando (chkconfig) per la gestione dei servizi che vengono avviati durante i vari runlevel del sistema. chkconfig richiede alcune righe di commento aggiuntive nello script init effettivo per dirgli in quali livelli di esecuzione deve essere avviato il servizio e quando, relativamente, il servizio deve essere avviato durante l'inizializzazione del livello di esecuzione. (gli script init vengono elaborati in un ordine specifico per garantire che i servizi dipendenti da altri vengano avviati dopo i servizi da cui dipendono.) Queste righe, tratte dallo script httpd init, sono le seguenti:
# chkconfig: 345 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI.
Qui,
345 – runlevel per i quali il servizio sarà abilitato per impostazione predefinita.
85 – priorità di inizio. Più basso è il numero, maggiore è la priorità e prima verrà avviato un servizio all'interno di un determinato runlevel.
15 – interrompere la priorità. Più basso è il numero, maggiore è la priorità e prima verrà interrotto un servizio all'interno di un determinato runlevel.
Elencare i servizi utilizzando chkconfig
Per ottenere un elenco di quali servizi vengono avviati a quale livello di esecuzione, utilizzare il comando "chkconfig –list “.
# chkconfig --list acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off ...
Facoltativamente, puoi aggiungere un nome come argomento aggiuntivo e chkconfig elencherà solo le informazioni per quel servizio. Di seguito è riportato l'output di chkconfig –list iptables sul mio sistema:
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:on 5:on 6:off
In questo caso, chkconfig segnala che il servizio iptables deve essere avviato per i livelli di esecuzione 3, 4 e 5.
Abilitazione o disabilitazione di un servizio all'avvio
In questo esempio, utilizzeremo il servizio iptables. Se vuoi, elenca le regole attuali da cui inizieranno i servizi:
# chkconfig --list iptables httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
"chkconfig on" senza specificare alcun runlevel abiliterà il servizio sui runlevel 2,3,4 e 5. Ad esempio:
# chkconfig iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Allo stesso modo, per disabilitare il servizio a tutti i livelli di esecuzione, utilizzare il comando "chkconfig off". Ad esempio:
# chkconfig iptables off
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
controllo fine chkconfig
Il -livello l'opzione può essere data a chkconfig per specificare quali runlevel apportare la modifica (attivata o disattivata). Gli altri runlevel non verranno modificati. Ciò configurerebbe il sistema per avviare iptables nei runlevel 3 e 5:
# chkconfig --level 35 iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:off 5:on 6:off
Aggiunta di un servizio utilizzando chkconfig
Per aggiungere un nuovo servizio a tutti i livelli di esecuzione in base alle raccomandazioni fornite a chkconfig, utilizzare il comando seguente:
# chkconfig --add [servicename]
chkconfig imposta tutti i collegamenti per il servizio nelle directory corrette in un colpo solo.
Nota :Quando viene installata un'applicazione o un servizio, viene generato uno script di inizializzazione che viene aggiunto automaticamente al file /etc/init.d. Quindi, se hai difficoltà a identificare il nome del tuo servizio, visita /etc/init.d, individua lo script appropriato e ottieni il nome del servizio dal suo contenuto.Ripristino delle informazioni sul servizio
Giocare con i servizi è educativo, purché tu abbia un backup del tuo albero di directory /etc/rc.d e un modo per tornare nel sistema per ripristinarlo. Tuttavia, questo tipo di azione drastica di solito non è necessaria. Invece, puoi ripristinare la priorità di avvio del servizio e altre informazioni alle impostazioni consigliate eseguendo il comando seguente.
# chkconfig [servicename] reset
Questo comando riporta tutto a un (si spera) sano default.
Rimozione di un servizio utilizzando chkconfig
Se non hai più bisogno di utilizzare un servizio, puoi disabilitarlo all'avvio utilizzando l'opzione "chkconfig off":
# chkconfig [servicename] off
Dovresti quindi procedere per interrompere l'esecuzione del servizio con il seguente comando:
# service [servicename] stop
Il comando precedente avrà effetto immediato. Tuttavia, per finalizzare questa procedura potresti volerla rimuovere dallo strumento di gestione di chkconfig digitando:
# chkconfig --del [servicename]