Spesso è necessario abilitare o disabilitare i servizi temporaneamente o permanentemente sul nostro sistema Ubuntu. A volte, potremmo richiedere l'avvio automatico di determinati servizi all'avvio, ad esempio ssh o server Web, e talvolta potrebbe essere necessario disabilitare i servizi di cui non abbiamo più bisogno e che stanno monopolizzando la CPU e la RAM.
In questo tutorial, diamo un'occhiata a come abilitare e disabilitare i servizi su Ubuntu. Per fare ciò, dobbiamo prima capire che ci sono 3 principali sistemi di init per Ubuntu
- Sistema
- Ripartenza
- SysV
Ogni sistema init ha un modo diverso di avviare e interrompere i servizi. Daremo un'occhiata a ciascuno di questi.
Come abilitare e disabilitare i servizi in Systemd init
Per avviare un servizio in systemd esegui il comando come mostrato:
systemctl start service-name
Ad esempio, per avviare il servizio Web Apache, esegui
systemctl start apache2
Per verificare che il servizio sia in esecuzione, esegui
systemctl status apache2
Risultato
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Thu 2018-03-15 17:09:05 UTC; 35s ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/apache2.service
├─2499 /usr/sbin/apache2 -k start
├─2502 /usr/sbin/apache2 -k start
└─2503 /usr/sbin/apache2 -k start
Mar 15 17:09:04 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:09:04 ip-172-31-41-251 apache2[2475]: * Starting Apache httpd web ser
Mar 15 17:09:05 ip-172-31-41-251 apache2[2475]: *
Mar 15 17:09:05 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.
Per interrompere il servizio servizio in esecuzione
systemctl stop apache2
Per confermare che il servizio non è in esecuzione, esegui
systemctl status apache2
Risultato
● apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: inactive (dead) since Thu 2018-03-15 17:19:47 UTC; 12s ago
Docs: man:systemd-sysv-generator(8)
Process: 2822 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS
Process: 2687 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCE
Mar 15 17:10:11 ip-172-31-41-251 systemd[1]: Starting LSB: Apache2 web server...
Mar 15 17:10:11 ip-172-31-41-251 apache2[2687]: * Starting Apache httpd web ser
Mar 15 17:10:12 ip-172-31-41-251 apache2[2687]: *
Mar 15 17:10:12 ip-172-31-41-251 systemd[1]: Started LSB: Apache2 web server.
Mar 15 17:19:46 ip-172-31-41-251 systemd[1]: Stopping LSB: Apache2 web server...
Mar 15 17:19:46 ip-172-31-41-251 apache2[2822]: * Stopping Apache httpd web ser
Mar 15 17:19:47 ip-172-31-41-251 apache2[2822]: *
Mar 15 17:19:47 ip-172-31-41-251 systemd[1]: Stopped LSB: Apache2 web server.
Per abilitare il servizio apache2 all'avvio, esegui
systemctl enable apache2
Per disabilitare il servizio apache2 all'avvio, esegui
systemctl disable apache2
Per riavviare il servizio
systemctl restart apache2
Per verificare se il servizio è attualmente configurato per l'avvio al prossimo avvio
systemctl is-enabled apache2
Risultato
Executing /lib/systemd/systemd-sysv-install is-enabled apache2
enabled
Per verificare se il servizio è attivo
systemctl is-active apache2
Risultato
active
Come rimuovere completamente i servizi Systemd
Che cosa succede se hai installato un pacchetto e in seguito decidi che non ne hai più bisogno. Come si fa a rimuoverlo completamente? Segui i comandi seguenti.
Per prima cosa, interrompi il servizio
systemctl stop service-name
Quindi disabilita il servizio
systemctl disable service-name
Rimozione del servizio in systemd
rm /etc/systemd/system/service-name
rm /etc/systemd/system/service-name/[related symlinks]
Ricarica sistemad
systemctl daemon-reload
Finalmente corri,
systemctl reset-failed
Come abilitare e disabilitare i servizi in Upstart init
Il sistema init Upstart è stato presentato poco prima di systemd È stato utilizzato da Ubuntu 9.10 a Ubuntu 14.10. Successivamente è stato gradualmente eliminato aprendo la strada a systemd init in Ubuntu 15.04 e versioni successive. In questo esempio, vediamo come avviare e interrompere, abilitare e disabilitare i servizi in Ubuntu 14.04.
Upstart fa uso di file di configurazione per il controllo dei servizi. Questi file sono conservati nella directory /etc/init. Questi file sono costituiti da sezioni di testo normale organizzate in stanze e ciascuna stanza descrive un servizio e come funziona.
Per verificare se un servizio è in esecuzione o meno esegui il comando seguente
initctl status service-name
O
service service-name status
O
status service-name
In questo esempio, verificheremo lo stato di cups, un server di stampa Linux.
initctl status cups
O
service cups status
O
status cups
Risultato
cups start/running, process 3029
Per interrompere il servizio esegui il comando seguente
initctl stop cups
O
service cups stop
O
stop cups
Risultato
cups stop/waiting
Per abilitare un servizio in Upstart init
Nel file /etc/init/*.conf troverai il file "respawn " direttiva che avvia un servizio in caso di arresto anomalo inaspettato o in caso di riavvio del sistema. Normalmente è abilitato per impostazione predefinita.
Ad esempio, nel file /etc/init/cups.conf di seguito,
il primo argomento (3) è il numero di tentativi che tenterà di riavviare e il secondo argomento (12) è l'intervallo di tempo tra i tentativi. Se non si riavvia automaticamente. verrà mantenuto in uno stato di arresto.
Per disabilitare un servizio in upstart init
esegui il comando seguente
echo manual >> /etc/init/service.override
Questo crea un file di override che disabilita un servizio senza alterare affatto la definizione del lavoro.
Per il servizio bicchieri, il comando sarà
echo manual >> /etc/init/cups.override
Al riavvio del sistema, le tazze saranno in uno stato di arresto. Se desideri riattivare il servizio, devi eliminare il file /etc/init/cups.override.
Strumento Sysv-rc-conf
Questa è una console basata su testo che offre una panoramica dei diversi servizi e runlevel per i quali è programmato l'avvio. Può essere installato utilizzando il seguente comando
apt-get install sysv-rc-conf
Per eseguire lo strumento, esegui
sysv-rc-conf
Strumento Jobs-Admin
Questa è un'altra funzionalità che consente di controllare servizi e processi in un ambiente GUI. Puoi installarlo eseguendo.
apt-get install jobs-admin
Come abilitare e disabilitare i servizi in SysV init
Per abilitare un servizio in SysV init esegui
update-rc.d enable service-name
Ad esempio, se desideri abilitare il server Web Apache, dovresti eseguire
update-rc.d enable apache2
Per disabilitare un servizio , esegui
update-rc.d disable service-name
Ad esempio
update-rc.d disable apache2
Quasi tutti i sistemi Linux funzionano su Systemd init Da Ubuntu, Debian, RHEL e CentOS. Scoprirai quindi che utilizzerai una parte maggiore del comando systemctl per avviare, interrompere, abilitare e disabilitare i servizi. Ti invitiamo a provare i comandi come mostrato in questo articolo. Grazie.
Leggi anche:
- Comandi Systemctl per gestire il servizio Systemd in Linux