GNU/Linux >> Linux Esercitazione >  >> Linux

Elenco dei servizi Linux con Systemctl

In Linux, un servizio è un programma che viene eseguito in background. I servizi possono essere avviati su richiesta o all'avvio.

Se stai utilizzando Linux come sistema operativo principale o piattaforma di sviluppo, ti occuperai di diversi servizi come server web, ssh o cron. Sapere come elencare i servizi in esecuzione o controllare lo stato del servizio è importante durante il debug dei problemi di sistema.

La maggior parte delle recenti distribuzioni Linux utilizza systemd come sistema di inizializzazione predefinito e gestore dei servizi.

Systemd è una suite di strumenti per la gestione dei sistemi Linux. Viene utilizzato per avviare la macchina, gestire i servizi, montare automaticamente i filesystem, registrare eventi, impostare il nome host e altre attività di sistema.

Questo articolo spiega come elencare i servizi in Linux.

Elenco dei servizi Linux #

Systemd utilizza il concetto di unità, che possono essere servizi, socket, punti di montaggio, dispositivi, ecc. Le unità sono definite utilizzando file di testo in ini formato. Questi file includono informazioni sull'unità, le sue impostazioni e i comandi da eseguire. Le estensioni del nome file definiscono il tipo di file dell'unità. Ad esempio, i file dell'unità di servizio del sistema hanno un .service estensione.

systemctl è un'utilità della riga di comando utilizzata per controllare systemd e gestire i servizi. Fa parte dell'ecosistema systemd ed è disponibile per impostazione predefinita su tutti i sistemi.

Per ottenere un elenco di tutte le unità di servizio caricate, digita:

sudo systemctl list-units --type service
UNIT          LOAD      ACTIVE SUB     DESCRIPTION                                                              
cron.service  loaded    active running Regular background program processing daemon 
...

Ogni riga di output contiene le seguenti colonne da sinistra a destra:

  • UNIT - Il nome dell'unità di servizio.
  • LOAD - Informazioni sul fatto che il file dell'unità sia stato caricato in memoria.
  • ACTIVE - Lo stato di attivazione del file dell'unità di alto livello, che può essere attivo, ricaricato, inattivo, non riuscito, attivazione, disattivazione. È una generalizzazione del SUB colonna.
  • SUB - Lo stato di attivazione del file dell'unità di basso livello. Il valore di questo campo dipende dal tipo di unità. Ad esempio, un'unità di tipo servizio può trovarsi in uno dei seguenti stati, morto, terminato, non riuscito, inattivo o in esecuzione.
  • DESCRIPTION - Breve descrizione del file unitario.

Per impostazione predefinita, il comando elenca solo le unità attive caricate. Per vedere anche le unità caricate ma inattive, passa il --all opzione:

sudo systemctl list-units --type service --all

Se vuoi vedere tutti i file di unità installati, non solo quelli caricati, usa:

sudo systemctl list-unit-files

Visualizzazione dello stato del servizio #

Per controllare lo stato di un servizio, usa systemctl status comando:

sudo systemctl status <service_name>.service

Dove <service_name> è il nome dell'unità di servizio che si desidera controllare. Ad esempio, per determinare lo stato corrente del servizio nginx da eseguire:

sudo systemctl status nginx.service
Puoi omettere il suffisso “.service”. systemctl status nginx è uguale a systemctl status nginx.service .
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2020-12-23 19:13:50 UTC; 5s ago
       Docs: man:nginx(8)
    Process: 3061052 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 3061063 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3061064 (nginx)
      Tasks: 2 (limit: 470)
     Memory: 6.0M
     CGroup: /system.slice/nginx.service
             ├─3061064 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─3061065 nginx: worker process

Dec 23 19:13:50 linuxize.dev systemd[1]: Starting A high performance web server and a reverse proxy server...

Il comando stamperà le seguenti informazioni:

  • Loaded - Se l'unità di servizio è stata caricata e il percorso completo del file dell'unità. Mostra anche se l'unità è abilitata all'avvio all'avvio.
  • Active - Se il servizio è attivo e in esecuzione. Se il tuo terminale supporta i colori e il servizio è attivo e in esecuzione, il punto ( ) e la parte "attiva (in esecuzione)" verranno stampate in verde. La riga mostra anche per quanto tempo è in esecuzione il servizio.
  • Docs - La documentazione del servizio.
  • Process - Informazioni sui processi di servizio.
  • Main PID - Il servizio PID.
  • Tasks - Il numero di attività contabilizzate per l'unità e il limite di attività.
  • Memory - Informazioni sulla memoria utilizzata.
  • CGroup - Informazioni sui relativi Gruppi di Controllo.

Se vuoi solo controllare lo stato del servizio, usa il systemctl is-active comando. Ad esempio, per verificare che il servizio nginx sia in esecuzione, eseguire:

systemctl is-active nginx.service
active

Il comando ti mostrerà lo stato del servizio. Se il servizio è attivo, il comando restituisce uno stato di uscita pari a 0, che può essere utile quando si utilizza il comando all'interno degli script della shell.

Conclusione #

Ti abbiamo mostrato come usare il systemctl comando per elencare i servizi Linux e verificarne lo stato.


Linux
  1. Come gestire i servizi Systemd con Systemctl su Linux

  2. Configurazione dei reindirizzamenti delle porte in Linux con ncat

  3. Controlla i servizi in esecuzione su Linux

  4. Usa Systemctl per gestire i servizi

  5. Esempi di comandi systemctl in Linux

Come elencare i servizi di avvio all'avvio in Linux

Come riavviare i servizi di rete in Linux

Servizi di elenco su Ubuntu 20.04

Iniziare con systemctl

Come usare systemctl in Linux

Comando Linux chkconfig con esempi