Quando si utilizza qualsiasi distribuzione Linux, alcuni processi e servizi vengono eseguiti insieme. Alcuni possono essere eseguiti in background anche all'insaputa degli utenti. L'esecuzione di servizi non necessari può consumare gran parte delle risorse di sistema o anche rappresentare un problema di sicurezza se le misure non vengono prese in considerazione.
Pertanto, è necessario conoscere tutti i servizi in esecuzione sul sistema. In questo articolo, esamineremo tutti i possibili modi che puoi utilizzare per elencare i servizi in esecuzione sulla tua macchina Linux.
Come controllare i servizi in esecuzione in Linux
Vediamo prima di tutto una buona comprensione dei servizi Linux. Se un servizio ha un'inizializzazione: script , quindi viene fornito con tre stati:
- inizia
- fermati
- riavvia
Tutti che vengono eseguiti con il – servizio comando. Ad esempio, per riavviare gestore di rete servizio, eseguire il comando seguente:
sudo service network-manager restart
Il comando service fa riferimento a ciascun servizio utilizzando lo script init archiviato in /etc/init.d per Ubuntu e qualsiasi altra distribuzione basata su Debian e etc/rc.d/init.d per le distribuzioni Linux basate su RedHat. Alcuni nomi di servizio variano da una distribuzione all'altra. Ad esempio, il servizio del server web Apache è httpd su CentOS e Apache2 su Ubuntu.
Sistema V(SysV) | Parvenu | Sistema
Molte distribuzioni Linux rientrano nei seguenti sistemi init:
- Sistema V, che era il sistema di inizializzazione iniziale.
- Ripartenza
- systemd, che è l'ultimo sistema di inizializzazione al momento della stesura di questo articolo.
Sistema V (SysV)
System V o comunemente noto come SysV è un vecchio sistema init utilizzato dalle vecchie distribuzioni Linux e risale all'originale Unix. SysV gestisce il processo di avvio utilizzando lo script di shell presente nel file /etc/init*. Nel caso in cui utilizzi /etc/init.d/sshd avviare o interrompere un servizio; quindi stai utilizzando un sistema System V.
Riavvio del sistema di inizializzazione
È un sistema init basato su eventi che fungeva da sostituto del demone /sbin/init. Il sistema init Upstart è stato utilizzato per gestire l'avvio e l'arresto dei servizi durante l'avvio, l'arresto e la supervisione mentre il sistema è in esecuzione. Upstart è stato inizialmente sviluppato per la distribuzione Ubuntu Linux per sostituire il vecchio System V utilizzato in altre vecchie distribuzioni.
Sistemato
È il nuovo sistema init in cui si stanno spostando la maggior parte delle distribuzioni Linux. È stato sviluppato per accelerare il processo di avvio, gestire le dipendenze e molto altro. Nel caso in cui utilizzi systemctl restart sshd avviare o interrompere un servizio, quindi lo stai utilizzando su un sistema Systemd.
Controlla tutti i servizi in esecuzione in un sistema di inizializzazione System V(SysV)
Diamo un'occhiata ad alcuni dei comandi di Terminale che puoi utilizzare per elencare tutti i servizi in esecuzione in un sistema di inizializzazione SysV.
service --status-all
Il comando precedente elenca tutti i servizi in esecuzione nel tuo sistema. Nel caso in cui i servizi in esecuzione siano molti, puoi utilizzare parametri aggiuntivi – more e meno per elencare i servizi in una vista organizzata e chiara.
service --status-all | less
service --status-all | more
Per elencare solo i servizi attualmente in esecuzione sul sistema, eseguire il comando seguente:
service --status-all | grep running
Per visualizzare lo stato di un particolare servizio, eseguire il comando seguente:
service --status-all | grep [service_name] e.g service --status-all | grep httpd
In alternativa, puoi eseguire il comando seguente per visualizzare lo stato di un particolare servizio.
service httpd status
Per elencare tutti i servizi abilitati all'avvio, eseguire il comando seguente:
chkconfig --list
Controlla tutti i servizi in esecuzione in un sistema di inizializzazione Upstart
Per elencare tutti i servizi in esecuzione su un sistema Linux che esegue il sistema Upstartinit, eseguire il comando seguente:
initctl list
Controlla tutti i servizi in esecuzione in un sistema di inizializzazione Systemd
Per elencare tutti i servizi in esecuzione su un sistema Linux che esegue Systemd init system, eseguire il comando seguente:
systemctl
Dal comando precedente, vediamo che i dati vengono visualizzati in cinque colonne, ovvero UNIT, LOAD, ACTIVE, SUB e DESCRIZIONE. Diamo un'occhiata a cosa rappresenta ogni colonna:
- UNIT:mostra il nome dell'unità Systemd corrispondente.
- LOAD – Questa colonna mostra se l'unità corrente è caricata in memoria o meno.
- ATTIVO – Questa colonna indica se l'unità è in uso (attiva) o meno.
- SUB – Descrive lo stato di funzionamento di una particolare unità.
- DESCRIZIONE – Fornisce una descrizione dettagliata di una particolare unità.
Puoi anche elencare i servizi in esecuzione in base al loro tipo utilizzando il comando seguente:
systemctl list-units --type service
Puoi anche elencare i servizi in base al loro stato attuale. È relativamente simile all'output del comando precedente ma un po' più semplice.
systemctl list-unit-files --type service
Per elencare lo stato di un particolare servizio, eseguire il comando seguente:
systemctl status [service_name] e.g systemctl status acpid.path
Per elencare solo i servizi attualmente in esecuzione sul sistema, eseguire il comando seguente:
systemctl | grep running
Per elencare tutti i servizi abilitati nell'avvio, eseguire il comando seguente:
systemctl list-unit-files | grep enabled
Puoi anche visualizzare i gruppi di controllo principali e il relativo utilizzo delle risorse di sistema come I/O, CPU, attività e memoria utilizzando il comando systemd-cgtop.
systemd-cgtop
Possiamo anche usare pstree per elencare tutti i servizi in esecuzione nel sistema. Pstree acquisisce queste informazioni da Systemd uscita di sistema.
pstree
Il pstree può essere utilizzato anche con il sistema System V int. Cattura l'output dal sistema SysVinit.
pstree
Puoi anche usare chkservice utility per controllare tutti i servizi in esecuzione in un sistema Systemd. Non viene preinstallato. Tuttavia, puoi installare tramite Terminale usando il comando seguente:
sudo apt-get install chkservice
Per avviare chkservice, eseguire il comando seguente. Nota, sono necessari i privilegi di superutente.
sudo chkservice
Per vedere tutte le funzionalità di questo fantastico strumento, premi il pulsante [? ] chiave. Apre il menu di aiuto.
Conclusione
Questi sono alcuni dei comandi e delle utilità che puoi utilizzare per controllare tutti i servizi in esecuzione sul tuo sistema Linux. Se hai un comando o uno strumento che non abbiamo discusso in questo post, sentiti libero di farlo sapere ai nostri lettori nella sezione commenti.