Come gestire i servizi di Systemd con Systemctl?

Il gestore del sistema e dei servizi predefinito per la maggior parte delle distribuzioni Linux ora è systemd.


Il processo systemd sostituisce l’init SysV. Funziona come il primo processo dopo l’avvio del kernel ed è responsabile di portare l’host Linux nello stato in cui può essere utilizzato. È responsabile dell’avvio e della gestione dei servizi, del montaggio dei filesystem, della gestione dell’hardware, della generazione del prompt di accesso e molto altro.

Un vantaggio chiave rispetto a SysV è che systemd avvia il maggior numero possibile di servizi in parallelo, accelerando così il processo di avvio e rendendo più veloce la schermata di accesso.

unità

Gli elementi gestiti dal systemd sono chiamati unità. I file di unità si trovano in / lib / systemd / system.

Unità di servizio

Per la gestione del servizio, le unità target sono unità di servizio, che hanno file di unità con un suffisso di .servizio.

Gestione dei servizi di sistema

Il comando per gestire le unità systemd è systemctl.

Avvio e arresto dei servizi

Per avviare un servizio systemd, utilizzare il comando start di systemctl:

$ sudo systemctl start name.service

Puoi lasciare il suffisso .service. Ad esempio, per avviare il server Apache su Ubuntu:

$ sudo systemctl avvia apache2

Per interrompere un servizio in esecuzione:

$ sudo systemctl stop name.service

Quindi, per arrestare il server Apache su Ubuntu:

$ sudo systemctl stop apache2

Riavvio e ricaricamento dei servizi

Per riavviare un servizio in esecuzione, utilizzare il comando restart:

$ sudo systemctl restart name.service

E dove è richiesto il solo caricamento del file di configurazione

$ sudo systemctl ricaricare name.service

Abilitazione e disabilitazione dei servizi

Se si desidera che un servizio si avvii automaticamente all’avvio del sistema, utilizzare il comando enable:

$ sudo systemctl abilita name.service

Per disabilitare l’avvio di un servizio all’avvio del sistema:

$ sudo systemctl disabilita name.service

La disabilitazione non interrompe un servizio in esecuzione.

Visualizzazione dello stato del servizio

Per visualizzare informazioni su un servizio:

$ sudo systemctl status name.service

Questo ti mostrerà lo stato del servizio e le prime poche righe del file di registro. Quindi, mentre il servizio è in esecuzione, l’output di

sudo systemctl status apache2

è

apache2.service – Il server HTTP Apache
Caricato: caricato (/lib/systemd/system/apache2.service; abilitato; preimpostazione fornitore: abilitato)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Attivo: attivo (in esecuzione) da mar 2020-05-19 22:11:36 UTC; 4 giorni fa
Processo: 116002 ExecReload = / usr / sbin / apachectl grazioso (codice = uscito, stato = 0 / SUCCESSO)
PID principale: 104165 (apache2)
Compiti: 55 (limite: 1024)
CGroup: /system.slice/apache2.service
├─104165 / usr / sbin / apache2 -k start
├─116006 / usr / sbin / apache2 -k start
└─116007 / usr / sbin / apache2 -k start

19 maggio 22:11:36 ubuntu18 systemd [1]: Avvio del server HTTP Apache…
19 maggio 22:11:36 ubuntu18 systemd [1]: Avvia Apache HTTP Server.
21 maggio 06:25:01 ubuntu18 systemd [1]: Ricarica il server HTTP Apache.
21 maggio 06:25:01 ubuntu18 systemd [1]: Reloaded Apache HTTP Server.
22 maggio 06:25:01 ubuntu18 systemd [1]: Ricarica il server HTTP Apache.

Per verificare se un servizio è attivo:

$ sudo systemctl is-active name.service

Quindi, mentre il servizio apache2 è in esecuzione, l’output del comando isctive di systemctl è:

$ sudo systemctl is-active apache2
attivo

Per verificare se un servizio è abilitato:

$ sudo systemctl è abilitato name.service.

Visualizzazione dello stato del sistema

Tutti i comandi che hai visto fino ad ora vengono utilizzati per gestire un singolo servizio. Quando si desidera una panoramica dello stato del sistema, utilizzare il seguente set di comandi:

Per vedere tutti i tipi di unità

$ sudo systemctl -t aiuto
Tipi di unità disponibili:
servizio
presa di corrente
bersaglio
dispositivo
montare
automount
scambiare
Timer
sentiero
fetta
scopo

Per elencare tutte le unità installate, utilizzare list-unit-files

$ sudo systemctl list-unit-files
STATO FILE UNITÀ
proc-sys-fs-binfmt_misc.automount statico
-.mount generato
boot-efi.mount generato
dev-hugepages.mount statico
dev-mqueue.mount statico
mnt.mount generato
proc-sys-fs-binfmt_misc.mount statico
sys-fs-fuse-connections.mount static
sys-kernel-config.mount statico
sys-kernel-debug.mount statico
acpid.path abilitato
apport-autoreport.path abilitato
systemd-ask-password-console.path statico
systemd-ask-password-plymouth.path statico
systemd-ask-password-wall.path statico
session-161.scope transient
account-daemon.service abilitato

L’output ha solo due colonne File unità e Stato. Lo stato sarà generalmente abilitato, disabilitato, statico o mascherato.

  • Statico: Ciò significa che l’unità non può essere abilitata, esegue un’azione una tantum o è una dipendenza di un’altra unità e non può essere eseguita da sola.
  • mascherato: Un’unità elencata come mascherata significa che è completamente non avviabile, poiché è collegata a / dev / null. Questo si chiama mascheramento dell’unità. Ciò impedisce l’avvio del servizio, manuale o automatico.

Elencare tutti i servizi installati

Il comando systemctl list-unit-files con il filtro di servizio -t o –type mostra solo lo stato dei servizi installati.

$ sudo systemctl list-unit-files -t service

STATO FILE UNITÀ
account-daemon.service abilitato
acpid.service disabilitato
apache-htcacheclean.service disabilitato
[Email protected] Disabilitato
apache2.service abilitato
[Email protected] Disabilitato
apparmor.service abilitato
apport-autoreport.service statico
[Email protected] statico
generato.service generato
apt-daily-upgrade.service statico
apt-daily.service statico
atd.service abilitato
[Email protected] abilitato
blk-availability.service abilitato
bootlogd.service mascherato
bootlogs.service mascherato

Per visualizzare tutte le unità di servizio attive, utilizzare le unità di elenco con filtro di servizio -t

$ sudo systemctl list-units -t servizio

UNITÀ DI CARICO ATTIVA SUB DESCRIZIONE
account-daemon.service ha caricato il servizio clienti in esecuzione attivo
apache2.service caricato attivo in esecuzione Il server HTTP Apache
inizializzazione AppArmor caricata attiva apparmor.service caricata
apport.service caricato LSB attivo uscito: generazione automatica di rapporti sugli arresti anomali
atd.service caricato attivo in esecuzione Scheduler di esecuzione differito
blk-availability.service caricato attivo uscito Disponibilità dei dispositivi a blocchi
cloud-config.service caricato attivo uscito Applicare le impostazioni specificate in cloud-con
cloud-final.service caricato attivo uscito Esegue script utente / finale cloud
cloud-init-local.service caricato attivo uscito Processo cloud-init iniziale (pre-rete)
cloud-init.service caricato attivo uscito Processo cloud-init iniziale (servizio metadati
console-setup.service caricato attivo uscito Imposta font e keymap della console
cron.service caricato attivo in esecuzione Dae di elaborazione regolare del programma in background

L’output ha le seguenti colonne:

  • UNITÀ: Il nome dell’unità di servizio systemd
  • CARICARE: Mostra se la definizione dell’unità è stata letta e caricata correttamente
  • ATTIVO: Descrive se l’unità è attiva.
  • SUB: Stato di attivazione di basso livello dell’unità, che fornisce informazioni più dettagliate sull’unità. Questo varierà in base al tipo di unità.
  • DESCRIZIONE: La descrizione dell’unità di servizio.

Conclusione

Spero che questo ti dia un’idea sull’uso di systemctl per gestire i servizi su Linux. Se sei interessato a saperne di più, puoi dare un’occhiata a questo Corso di padronanza di Linux.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map