Linux è un sistema multitasking opzionale come quasi tutti in questi giorni. E per rendere questa una vera esperienza, molte applicazioni vengono gestite in background tramite servizi. Bene, in vari momenti e circostanze l'utente del sistema ha bisogno di avviare, interrompere o riavviare questi servizi. Ecco perché, in questo post, imparerai come gestire i servizi in Linux con il comando systemctl.
Inoltre, in questo post, ti mostreremo molte delle utilità che il comando può fare. Oltre a questo, spiegheremo cos'è un servizio e come siamo arrivati a systemctl.
Qual è la differenza tra systemd e il comando systemctl?
Prima di dare un'occhiata all'utilizzo di systemctl command, è una buona idea stabilire la differenza tra il comando e systemd .
Con l'obiettivo principale di ottimizzare la gestione e il caricamento dei servizi Linux, systemd sono nato. Sostituisce il vecchio Sysvinit non senza una dose di polemiche.
Systemd è composto da una serie di daemon e script compatibili con SysV e LSB. Consente inoltre l'avvio dei demoni on demand, il monitoraggio dei processi con l'utilizzo dei gruppi di controllo Linux.
D'altra parte, systemctl è un comando utilizzato per gestire i servizi di sistema. Funziona come una sorta di interfaccia per systemd . Ora lo fa. Useremo systemctl .
Gestire i servizi in Linux con il comando systemctl
Se utilizzi una moderna distribuzione Linux, hai installato ed eseguito systemd e quindi il systemctl comando.
Il comando stesso è molto facile da usare. Pertanto la sintassi di base è la seguente.
systemctl [OPTIONS...] {COMMAND} ...
Come la maggior parte dei comandi in Linux, ha opzioni che modificano il comportamento del sistema. Se visualizzi il systemctl aiuto, vedrai molte opzioni e comandi disponibili.
:~$ systemctl --help
Questo perché sebbene systemctl viene utilizzato per gestire i servizi di sistema, consente anche di eseguire altre operazioni, come lo spegnimento o il riavvio del computer.
Studierai comunque la gestione dei servizi con systemctl attraverso le situazioni.
1. Elenca i servizi del sistema
Innanzitutto, devi considerare che il comando systemctl deve essere utilizzato come superutente. O almeno che il tuo utente possa usare sudo . Quindi, apri un terminale ed elenca i servizi di sistema in systemd , esegui il comando seguente
:~$ sudo systemctl
Come puoi vedere dall'output dello schermo, è un po 'ingombrante. Ma puoi comunque visualizzare i servizi del sistema.
Tuttavia, è possibile aggiungere il sottocomando list-unit e un filtro per migliorare la presentazione dei risultati.
:~$ sudo systemctl list-units --type=service --all
Questa immagine presenta risultati più chiari. Le colonne più importanti sono il carico, attivo e sottocolonne, dove viene mostrato se è attivo nel sistema e se è in esecuzione.
Se vuoi mostrare solo quelli in esecuzione, modifica il comando precedente per questo:
:~$ sudo systemctl list-units --type=service --state=running
2. Avvia, arresta e riavvia i servizi con il comando systemctl
Ora che sai quali servizi sono presenti nel tuo sistema, puoi scegliere di avviarli, se sono stati interrotti, o interromperli se sono in esecuzione.
Per avviare un servizio, usa questo comando:
:~$ sudo systemctl start [service]
Sostituisci servizio con il nome del servizio. Nel caso di MySQL, il comando sarebbe il seguente:
:~$ sudo systemctl start mysql
Se invece vuoi fermarlo, usa il sottocomando stop e il nome del servizio.
:~$ sudo systemctl stop [service]
Seguendo l'esempio di MySQL, sarebbe simile a questo:
:~$ sudo systemctl stop mysql
D'altra parte, ci sono momenti in cui è necessario apportare modifiche alla configurazione di alcuni servizi. Per applicare queste modifiche, devi riavviarlo.
:~$ sudo systemctl restart [service]
Il servizio può anche essere ricaricato. In questo caso, riconfigurare solo parzialmente il servizio. Il sottocomando è “reload”.
:~$ sudo systemctl reload [service]
Per riavviarlo completamente devi utilizzare l'opzione riavvia.
3. Abilita e disabilita il servizio per l'avvio o meno all'avvio del sistema
Quando un servizio di terze parti è molto importante per il funzionamento del nostro server o di alcune di queste applicazioni, è conveniente chiedere a systemd di avviarlo insieme al sistema.
Per fare ciò, segui semplicemente la seguente sintassi:
:~$ sudo systemctl enable [service]
Quindi, sostituisci [servizio] con il nome del servizio di cui hai bisogno.
Per disabilitarlo, usa il sottocomando disabilita.
:~$ sudo systemctl disable [service]
In questo modo puoi impostare quali servizi verranno avviati automaticamente e quali no.
4. Mascherare e smascherare un servizio con Systemctl
Se vuoi che un servizio sia disabilitato ma non possa essere abilitato automaticamente o manualmente, dovrebbe essere mascherato. Non preoccuparti che può sempre essere smascherato e riattivato.
Quindi, per mascherare un servizio, usa il seguente comando
:~$ sudo systemctl mask [service]
E per invertire il comando precedente:
:~$ sudo systemctl unmask [service]
Ciò aggiunge un ulteriore livello di sicurezza per la gestione del server. Ideale per la condivisione del lavoro. Perché per avviare o abilitare un servizio mascherato, devi prima smascherarlo.
5. Controlla lo stato di un servizio con il comando systemctl
Spesso è utile sapere qual è lo stato di un servizio. Questo serve per rilevare possibili errori.
Per fare ciò, usa il seguente comando:
:~$ sudo systemctl status [service]
Se il servizio è in esecuzione, vedrai un'immagine simile a questa.
In caso contrario, vedrai qualcosa del genere.
Questo è molto utile per sapere se un determinato servizio è in esecuzione.
Conclusione
La gestione dei servizi potrebbe essere un po' complicata dal terminale, ma non lo è. E questo aiuta il nostro sistema a essere gestito correttamente dall'utente.
In questo post hai utilizzato il comando systemctl per la gestione di base di questi servizi. Tuttavia, gli esempi che hai appena osservato sono i casi più comuni, quindi saranno sufficienti.