Come elencare tutti i servizi in esecuzione sotto systemd in Linux

In qualità di amministratore di sistema Linux, puoi gestire molti servizi ogni giorno. In questo rapido articolo, descriveremo come elencare tutti i servizi in esecuzione su systemd su Linux. Quando si avvia un sistema Linux, molte attività in background vengono avviate come parte del processo di avvio, chiamate servizi o demoni. Queste attività in background vengono eseguite senza l’intervento dell’utente. Su alcune distribuzioni basate su systemd, systemd è il primo processo che si avvia dopo l’avvio del sistema e ha un PID di ‘1’. I dettagli dei servizi sono memorizzati in file di unità situati nel file "/usr/lib/systemd" directory. Sarà possibile utilizzare il comando systemctl per controllare/gestire le unità systemd e le opzioni comunemente utilizzate sono avviare, arrestare, riavviare, mascherare o ricaricare un demone o un servizio.

1) Elenco dei servizi Linux con systemctl

Per visualizzare tutti i servizi in esecuzione su un sistema Linux con systemd, utilizzare il seguente comando. Questo ti mostrerà il nome, il carico, lo stato secondario e la descrizione di ogni servizio/unità attivo sull’unità in esecuzione

systemctl list-units --type=service --state=running

Per elencare tutti i servizi caricati sul sistema (attivi, in esecuzione, terminati o non riusciti), utilizzare il sottocomando list-units --type e passare con un valore service.

systemctl list-units --type=service

E per elencare tutti i servizi caricati ma attivi, sia in esecuzione che quelli che sono usciti, puoi aggiungere l’ --state con un valore di active, come segue.

systemctl list-units --type=service --state=active

1.1) Elenco di altri tipi di unità

Allo stesso modo, puoi vedere altri tipi di unità disponibili come mostrato di seguito. Tuttavia, prima dobbiamo identificare l’elenco delle unità supportate tramite il comando systemctl con l’estensione '-t' opzione.

# systemctl -t help
Available unit types:
service
mount
swap
socket
target
device
automount
timer
path
slice
scope

È possibile elencare tutti i tipi di unità supportati modificando '--type=(UNIT_NAME)' in base alle vostre esigenze. Ad esempio, per elencare il ‘socket’ tipo di unità, eseguire:

# systemctl list-units --type=socket --state=running

Se vuoi controllare tutte le unità in esecuzione contemporaneamente con il comando systemctl, aggiungi tutti i tipi di unità tra parentesi graffe come mostrato di seguito:

# systemctl list-units --type={service,mount,swap,socket,target,device,automount,timer,path,slice,scope} --state=running

1.2) Verifica di tutte le unità in esecuzione con systemctl

Puoi elencare tutte le unità in esecuzione filtrando il file 'running' stringa con l’aiuto del comando grep. Il seguente comando elenca tutti i tipi di unità in esecuzione inclusi .service, .target, .socket, .mount, ecc.

# systemctl | grep -i running

Per contare tutte le unità in esecuzione, eseguire: l’output seguente, sul mio sistema sono in esecuzione complessivamente 26 unità. Questo numero di servizi in esecuzione può variare per te perché dipende dall’elenco dei pacchetti installati sul sistema.

# systemctl | grep -i running | wc -l

1.3) Filtraggio di un servizio specifico

Utilizzare il seguente comando per verificare se un particolare servizio è caricato e in esecuzione. Ad esempio, per verificare che il ‘log di sistema’ il servizio è caricato e in esecuzione, esegui: Allo stesso modo, puoi controllare qualsiasi servizio che desideri elencare.

# systemctl list-units --type=service --state=running

1.4) Verifica dello stato del servizio

Il seguente comando può essere utilizzato per visualizzare informazioni dettagliate su un particolare servizio in esecuzione. Visualizzerà molte informazioni come lo stato di esecuzione e caricamento, abilitato o meno all’avvio, posizione dell’unità di servizio, PID del processo, da quanto tempo il processo è in esecuzione, utilizzo della memoria e della CPU, ecc.

# systemctl status rsyslog
● [root@rocky-vps ~]# systemctl status rsyslog
● rsyslog.service - System Logging Service
     Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled)
     Active: active (running) since Mon 2023-07-24 01:33:31 CEST; 29min ago
       Docs: man:rsyslogd(8)
             https://www.rsyslog.com/doc/
   Main PID: 655 (rsyslogd)
      Tasks: 3 (limit: 11128)
     Memory: 2.2M
        CPU: 176ms
     CGroup: /system.slice/rsyslog.service
             └─655 /usr/sbin/rsyslogd -n

Jul 24 01:33:31 rocky-vps.local systemd[1]: Starting System Logging Service...
Jul 24 01:33:31 rocky-vps.local rsyslogd[655]: [origin software="rsyslogd" swVersion="8.2102.0-113.el9_2" x-pid="655" x-info="https://www.rsyslog.com"] start
Jul 24 01:33:31 rocky-vps.local systemd[1]: Started System Logging Service.
Jul 24 01:33:31 rocky-vps.local rsyslogd[655]: imjournal: journal files changed, reloading...  [v8.2102.0-113.el9_2 try https://www.rsyslog.com/e/0 ]
[root@rocky-vps ~]#

Inoltre, se il tuo server ha un servizio firewall in esecuzione, che controlla come bloccare o consentire il traffico da o verso servizi o porte selezionati, puoi elencare i servizi o le porte che sono stati aperti nel firewall, usando il comando firewall-cmd o ufw (a seconda delle distribuzioni Linux che stai utilizzando) come mostrato.

# firewall-cmd --list-services [FirewallD] 
# firewall-cmd --list-ports 

$ sudo ufw status [UFW Firewall]

Conclusione

Questo articolo ha mostrato come utilizzare i comandi systemctl per elencare tutti i servizi in esecuzione su Linux, incluse varie opzioni che mostrano ulteriori informazioni su un servizio in esecuzione.

Autore

Classe Novanta3, Fondatore di TrgtKLS. Appassionato in Sec IT & Tech. Expert per l'amministrazione web server e supporto in Back-&, ottimizzazione e manutenzione di esso. • Metà Free e Metà Freelancer • [email protected]

Articoli correlati

Lascia un commento

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