Come avviare, fermare e riavviare i servizi in Linux

Come fermare e avviare i servizi in Linux

Come amministratore di sistema, hai il compito di gestire un bel po’ di cose. E quella lista diventa ogni giorno più lunga e complicata. Per peggiorare le cose, le cose cambiano. Ricordo che un tempo, per avviare o fermare un servizio Linux, dovevo aprire una finestra di terminale, entrare in /etc/rc.d/ (o /etc/init.d, a seconda della distribuzione che stavo usando), localizzare il servizio, ed eseguire il comando /etc/rc.d/SERVICE start|stop|restart (dove SERVICE è il nome del servizio da avviare, fermare o riavviare). Quando si lavorava tra le distribuzioni Redhat e Debian, questo tendeva a confondere; provavo a lanciare /etc/rc.d/service start su una distribuzione, solo per scoprire che avrebbe dovuto essere /etc/init.d/service start.

Questo è cambiato. Come un servizio viene fermato, avviato e riavviato ora ha perfettamente senso. Ancora meglio, è (per la maggior parte) diventato universale.

Più o meno.

Come si avvia|arresta un servizio dipende se la vostra distribuzione usa systemd o init. Anche in quel caso, potreste essere in grado di controllare quei servizi con diversi mezzi. Lasciatemi spiegare.

systemctl vs. service

Questo è il nocciolo della questione. Ci sono due metodi ufficialmente adottati per controllare i servizi:

  • systemctl
  • service

Quale usate dipenderà dal fatto che la vostra distribuzione faccia uso di systemd o init. La maggior parte delle distribuzioni moderne hanno fatto il passaggio a systemd, quindi systemctl è il gestore di servizi preferito. Tuttavia, le vecchie abitudini sono dure a morire, così molti amministratori si aggrappano ancora al vecchio comando service. Fortunatamente, gli sviluppatori di systemd hanno fatto in modo di mantenere service e reindirizzarlo a systemctl. Per complicare ulteriormente le cose, potreste trovare un servizio casuale che avete installato che non è stato aggiornato agli strumenti service o systemctl e dovrete avviarlo manualmente da /etc/rc.d (o /etc/init.d).

Quindi può essere ancora un po’ confuso.

Ma qui stiamo cercando le migliori pratiche; e per avviare|arrestare|riavviare applicazioni su Linux, le migliori pratiche iniziano e finiscono con systemctl.

uso di systemctl

La complicazione finisce qui. Infatti, l’arresto/avvio/riavvio dei servizi su Linux è ora abbastanza semplice. Diciamo che siamo su CentOS e vogliamo fermare il server Apache. Per fare questo apriremo una finestra di terminale e daremo il comando:

 sudo systemctl stop httpd 

Il server Apache si fermerà e si tornerà al prompt di bash. Per avviare lo stesso servizio, daremo il comando:

 sudo systemctl start httpd 

Il servizio si avvierà e si tornerà al prompt di bash.

Per riavviare lo stesso servizio, daremo il comando:

 sudo systemctl restart httpd 

Il servizio ripartirà e si tornerà al prompt di bash.

I comandi di cui sopra possono essere eseguiti su CentOS, Ubuntu, Redhat, Fedora, Debian, e molti altri.

uso del servizio

Per rendere le cose interessanti, il comando service funziona ancora — anche per quelle distribuzioni che sono migrate a systemd e systemctl. Questo significa che coloro che istintivamente digitano service, quando hanno bisogno di riavviare un servizio su Linux, non riceveranno un errore “Unknown command”. Nel caso di service, il comando reindirizzerà a systemctl. Infatti, quando si esegue il comando service su una distribuzione abilitata per systemctl, si vedranno chiaramente le informazioni di reindirizzamento (Figura A).

Figura A

Figura A

Il comando service che reindirizza a systemctl.

L’uso del comando di servizio è un po’ diverso da systemctl. Il nome del servizio e le opzioni start|stop|restart sono scambiate:

 sudo service httpd startsudo service httpd stopsudo service httpd restart 

In ogni caso, vedrete service reindirizzato a systemctl, ma il servizio che si è tentato di avviare|arrestare riuscirà a farlo.

Non è così complicato

Ho complicato la questione menzionando i vecchi metodi di avvio, arresto e riavvio dei servizi in Linux. A dire il vero, il processo di controllo dei servizi in Linux non è così complesso; devi solo capire il giusto comando da usare.

Per saperne di più su ciò che systemctl può fare per te, assicurati di dare il comando man systemctl e dai una lettura alla pagina man.

Vedi anche

  • Come monitorare i tuoi server Linux con nmon (TechRepublic)
  • Come installare Stacer per una rapida ottimizzazione del sistema Linux (TechRepublic)
  • Come usare wget per scaricare file sul tuo server Linux senza GUI (TechRepublic)
  • Come impedire che Ubuntu sovrascriva /etc/resolv.conf (TechRepublic)
  • Rilasciato un nuovo e migliorato file server Samba (ZDNET)
sysctlhero.jpg
Image: Jack Wallen

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *