GNU/Linux >> Linux Esercitazione >  >> Linux

Come elencare i servizi su Linux

In qualità di amministratore di sistema, probabilmente hai a che fare con molti servizi ogni giorno.

Su Linux, servizi sono usati per molti scopi diversi.

Possono essere utilizzati per avviare un server SSH sulla tua macchina o possono eseguire alcune operazioni in un'ora o in un giorno specifico.

Sia che tu stia utilizzando una distribuzione basata su Debian o una RedHat, i servizi di query sono molto simili.

Tuttavia, data la distribuzione che stai utilizzando, e più specificamente il sistema di inizializzazione (init o systemd), potresti dover utilizzare comandi diversi.

In questo tutorial imparerai come puoi, dato il tuo gestore di sistema, elencare tutti i servizi sulla tua macchina Linux.

Determina il gestore di sistema utilizzato

Come probabilmente saprai, le distribuzioni recenti utilizzano il gestore di sistema Systemd .

Tuttavia, non è sempre stato così:in passato, la maggior parte delle distribuzioni utilizzava il gestore di sistema SysVinit.

Di conseguenza, ci sono davvero due modi per gestire i tuoi servizi su un sistema Linux.

Prima di apprendere i comandi per elencare i servizi, devi conoscere il gestore di sistema che stai attualmente utilizzando.

Per determinare il tuo attuale gestore di sistema, il modo più semplice è utilizzare il comando "pstree" e controllare il primo processo mai eseguito sul tuo sistema.

$ pstree | head -n 5

Se vedi "sistema “, significa ovviamente che stai attualmente utilizzando systemd. Tuttavia, se vedi "init “, significa che stai usando SysVinit.

Su Ubuntu 14.04, che utilizza ancora il vecchio sistema init, il tuo "pstree" potrebbe assomigliare a questo.

Elenca i servizi utilizzando systemctl

Il modo più semplice per elencare i servizi su Linux, quando sei su un sistema systemd, è usare il comando "systemctl" seguito da "list-units". Puoi specificare l'opzione “–type=service” per limitare i risultati ai soli servizi.

$ systemctl list-units --type=service

Per impostazione predefinita, questo comando ti mostrerà solo i servizi attivi o i servizi che hanno fallito sul tuo sistema. Nello screenshot qui sopra, la maggior parte dei servizi è attiva ma quello logrotate (evidenziato in rosso) è contrassegnato come non riuscito.

Fantastico, hai imparato come puoi facilmente elencare i tuoi servizi su un server Linux.

Tuttavia, come avrai notato, non avevi accesso a tutti i servizi:che dire dei servizi inattivi? Che dire dei servizi che non sono stati caricati da systemd all'avvio?

Elenca tutti i servizi su Linux utilizzando list-unit

Per elencare tutti i servizi, cioè attivi e inattivi, devi usare il comando "systemctl list-units" seguito dall'opzione "–all".

Allo stesso modo, puoi limitare i risultati ai soli servizi utilizzando il filtro di tipo.

$ systemctl list-units --type=service --all

Come puoi vedere, sono elencati anche i servizi inattivi che potrebbero essere utili se hai appena scritto il tuo servizio e se ne occupi nell'elenco.

In questo caso, vengono elencati solo i servizi caricati. All'avvio, systemd carica i file unit e può scegliere di non caricare un servizio specifico se rileva che non verrà utilizzato dal sistema.

Di conseguenza, c'è una vera differenza tra "caricato " e "installato " Servizi. I servizi "Installati" significano che i file unit possono essere trovati nei percorsi corrispondenti.

Elenca i servizi per stato

In alcuni casi, potresti essere interessato solo ai servizi che hanno fallito. Per questo, puoi specificare lo stato che stai cercando come opzione del comando systemctl.

$ systemctl list-units --state=<state>

$ systemctl list-units --state=<state1>,<state2>

Dove "stato" può essere uno dei seguenti valori:attivo, inattivo, in attivazione, disattivazione, non riuscito, non trovato o morto.

Ad esempio, se siamo interessati solo ai servizi "falliti", eseguiremo il seguente comando

$ systemctl list-units --state=failed

Elenca tutti i file di servizio utilizzando list-unit-files

Infine, se sei interessato a "caricato “, “installato “, “disabilitato ” e anche “abilitato ” file di servizio, c'è un altro comando che potrebbe essere molto utile.

Per elencare tutti i file di servizio disponibili, devi usare il comando "systemctl" seguito da "list-unit-files". Facoltativamente, puoi specificare il tipo utilizzando l'opzione “–type=service”.

$ systemctl list-unit-files --type=service

In alternativa, puoi utilizzare il comando "grep" per cercare percorsi specifici sul tuo sistema che potrebbero contenere file di servizio.

$ ls -l /etc/systemd/system /usr/lib/systemd/service | egrep .service$

Congratulazioni, hai imparato come elencare i servizi se il tuo sistema utilizza systemd!

Elenca i servizi che utilizzano il servizio

Il modo più semplice per elencare i servizi su Linux, quando ci si trova su un sistema init SystemV, è utilizzare il comando "service" seguito dall'opzione "–status-all". In questo modo, ti verrà presentato un elenco completo di servizi sul tuo sistema.

$ service --status-all

Come puoi vedere, ogni servizio è elencato preceduto da simboli tra parentesi. Questi simboli significano:

  • + :significa che il servizio è in esecuzione;
  • :significa che il servizio non è in esecuzione affatto;
  • ? :significa che Ubuntu non è stato in grado di dirlo se il servizio è in esecuzione o meno.

Allora perché alcuni servizi sono in grado di dire se sono in esecuzione o meno e altri non sono in grado di farlo?

Tutto si riduce all'implementazione dello script init. In alcuni script, come ad esempio lo script udev, puoi vedere che lo "stato ” è implementato.

Questo non è il caso di "dns-clean ” ad esempio, motivo per cui hai un punto interrogativo quando interroghi questo servizio.

Elenca i servizi SysVinit nelle cartelle

Un altro modo per elencare l'elenco corrente dei servizi consiste nell'usare il comando "ls" nelle cartelle contenenti tutti gli script su un sistema Linux, ovvero "/etc/init.d".

$ ls -l /etc/init.d/*

Conclusione

In questo tutorial, hai imparato come elencare facilmente i servizi su un sistema Linux se stai usando systemd o SysVinit.

Se sei interessato a creare i tuoi servizi, ti consigliamo di dare un'occhiata alle seguenti risorse. Potrebbero essere davvero utili per raggiungerlo correttamente.

  • Scrivere uno script di avvio per i sistemi init;
  • Avvio dei servizi all'avvio utilizzando systemd;

Se sei interessato a Amministrazione di sistema Linux , abbiamo una sezione completa su questo argomento sul sito Web, quindi assicurati di controllarla.


Linux
  1. Come configurare la virtualizzazione su Redhat Linux

  2. Come impostare o modificare il nome host del sistema in Linux

  3. Come gestire ed elencare i servizi in Linux

  4. Come modificare il nome host in Linux

  5. Come elencare i servizi Systemd in Linux

Come controllare tutti i servizi in esecuzione in Linux

Come elencare i servizi di avvio all'avvio in Linux

Come elencare i pacchetti installati in Linux

Come elencare le partizioni del disco in Linux

Come elencare gli utenti in Linux

Come elencare i dischi su Linux