systemctl: sostituzione del comando chkconfig su Linux moderno
chkconfig è un'utilità della riga di comando utilizzata nei sistemi operativi simili a Unix per gestire quali servizi si avviano automaticamente all'avvio del sistema.
Lo strumento chkconfig era ampiamente utilizzato nelle distribuzioni Linux meno recenti come CentOS 6 e versioni precedenti. chkconfig ha consentito agli amministratori di abilitare o disabilitare facilmente i servizi su diversi runlevel.
Perché chkconfig era importante?
Prima di immergerci nella sostituzione moderna, capiamo perché chkconfig è stato utile:
- Gestione dei servizi: forniva un modo semplice per gestire i servizi di avvio senza la necessità di creare o eliminare manualmente collegamenti simbolici nelle directory /etc/rc.d/.
- Controllo runlevel: consentiva agli amministratori di specificare quali servizi dovevano essere eseguiti a diversi runlevel. I runlevel sono diverse modalità di funzionamento per sistemi simili a Unix, come la modalità utente singolo, la modalità multiutente, ecc.
- Convenienza: ha semplificato la gestione dei servizi con comandi semplici per elencare, aggiungere o rimuovere servizi dall'avvio automatico.
Comandi chkconfig di base
Questa è la nostra serie di comandi Linux in corso in cui esamineremo come possiamo utilizzare il comando chkconfig in modo efficiente con i suoi parametri disponibili.
Lo strumento di comando chkconfig ci consente di configurare l'avvio e l'arresto automatico dei servizi negli script /etc/rc.d/init.d tramite la riga di comando.
Vediamo alcuni comandi comuni utilizzati con chkconfig:
1. Elenca tutti i servizi
Utilizzando il parametro '--list
' verranno visualizzati tutti i servizi e il loro stato di avvio corrente in ciascuna configurazione a livello di esecuzione.
chkconfig --list
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off
...
2. Controllare lo stato del servizio specifico
Il comando seguente visualizza la configurazione di avvio per un servizio specifico chiamato HTTP, che è disattivato in tutti i runlevel.
chkconfig --list | grep httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
3. Come posso avviare un particolare servizio sui livelli di esecuzione
I seguenti comandi `chkconfig` mostrano come configurare i servizi HTTP per l'avvio solo sui livelli di esecuzione 3
e 5
utilizzando il parametro `--level`
.
Il primo comando avvia i servizi `httpd` sui livelli di esecuzione 3
e 5
, mentre il secondo comando controlla lo stato di `httpd ` servizi in esecuzione su tali livelli di esecuzione.
chkconfig --level 35 httpd on
chkconfig --list | grep httpd
Esempio di output:
httpd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
4. Come verificare quali servizi sono attivi/disattivati
Il seguente comando visualizzerà tutti i servizi che sono On e Off nel livello di esecuzione specifico 5.
chkconfig --list | grep 5:on
Esempio di output:
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
abrt-ccpp 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrt-oops 0:off 1:off 2:off 3:on 4:off 5:on 6:off
abrtd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off
...
chkconfig --list | grep 5:off
Esempio di output:
dnsmasq 0:off 1:off 2:off 3:off 4:off 5:off 6:off
dovecot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
firstboot 0:off 1:off 2:off 3:off 4:off 5:off 6:off
kdump 0:off 1:off 2:off 3:off 4:off 5:off 6:off
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
nfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off
...
5. Come posso interrompere un particolare servizio sui livelli di esecuzione
Il seguente comando disattiverà Dis un servizio chiamato postfix per un solo livello di esecuzione. Allo stesso modo, possiamo disattivare Off un particolare servizio in più livelli di esecuzione in una volta sola, come mostrato di seguito.
chkconfig --level 3 postfix off
chkconfig --level 2345 postfix off
6. Come abilitare o disabilitare un servizio
Per consentire l'avvio automatico di un servizio all'avvio.
chkconfig servicename on
Per disabilitare l'avvio automatico di un servizio all'avvio.
chkconfig servicename off
Il passaggio al comando systemctl
Con l'evoluzione dei sistemi Linux, il sistema init (utilizzato da chkconfig) è stato sostituito da systemd, che è un moderno sistema e gestore di servizi per i sistemi operativi Linux.
Offre più funzionalità e prestazioni migliori. Con questa modifica, chkconfig è diventato deprecato e systemctl ha preso il suo posto.
Perché usare systemctl?
systemctl è lo strumento da riga di comando utilizzato per controllare il sistema e il gestore dei servizi systemd. Offre un modo più potente e flessibile per gestire i servizi.
Ecco alcuni vantaggi chiave:
- Unified Interface: fornisce un singolo comando per gestire sia i servizi di sistema che i runlevel (ora chiamati target in systemd).
- Prestazioni migliorate: systemd avvia i servizi in parallelo, migliorando i tempi di avvio.
- Altre funzionalità: supporta funzionalità moderne come le dipendenze del servizio, l'avvio del servizio su richiesta e altro ancora.
Comandi systemctl di base
Diamo un'occhiata a come eseguire attività simili con systemctl che avresti fatto con chkconfig:
Come elencare i servizi attivi
Questo comando elenca tutti i servizi attivi gestiti da systemd sul sistema fornendo maggiori informazioni sullo stato e sulle proprietà di ciascun servizio.
systemctl list-units --type=service
Come abilitare o disabilitare un servizio
Per consentire l'avvio automatico di un servizio all'avvio.
systemctl enable servicename
Per disabilitare l'avvio automatico di un servizio all'avvio.
systemctl disable servicename
Come avviare, arrestare e riavviare il servizio
Per avviare immediatamente un servizio.
systemctl start servicename
Per interrompere immediatamente un servizio.
systemctl stop servicename
Per riavviare immediatamente un servizio.
systemctl restart servicename
Come verificare lo stato del servizio
Per verificare lo stato di un servizio.
systemctl status servicename
Conclusione
Mentre chkconfig era uno strumento prezioso per la gestione dei servizi nelle vecchie distribuzioni Linux, il passaggio a systemd e al comando systemctl ha portato numerosi miglioramenti in termini di funzionalità e prestazioni.
Comprendere come utilizzare systemctl è essenziale per la moderna amministrazione di Linux. I comandi possono essere diversi, ma offrono un maggiore controllo e una migliore integrazione con il sistema nel suo complesso.
Se hai familiarità con chkconfig, imparare systemctl ti aiuterà a gestire i servizi in modo più efficiente negli ambienti Linux di oggi.