In qualità di amministratore di sistema, probabilmente hai a che fare con molti servizi ogni giorno.
Su Linux , i servizi vengono utilizzati per molti scopi diversi.
Possono essere usati 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 usando una distribuzione basata su Debian o uno RedHat, interrogare i servizi è molto simile.
Tuttavia, data la distribuzione che stai utilizzando, e più specificamente il sistema di inizializzazione (init o systemd), potresti dover usare comandi diversi.
In questo tutorial imparerai come puoi, dato il tuo gestore di sistema, elencare tutti i servizi sulla tua macchina Linux.
Sommario
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 imparare 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 è usare il ” pstree ”e per controllare il primo processo mai eseguito sul tuo sistema.
Se vedi “systemd”, significa ovviamente che stai utilizzando systemd. Tuttavia, se vedi ” init “, significa che stai usando SysVinit.
Su Ubuntu 14.04, che usa ancora il vecchio sistema init, il tuo” pstree “potrebbe assomigliare a questo.
Elenca 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.
Per impostazione predefinita, questo comando ti mostrerà solo i servizi attivi o quelli che hanno avuto esito negativo sul tuo sistema. Nella schermata sopra, la maggior parte dei servizi sono attivi ma quello logrotate (evidenziato in rosso) è contrassegnato come non riuscito.
Fantastico, hai imparato come elencare facilmente i tuoi servizi su un server Linux.
Tuttavia, come forse avrai notato, non avevi accesso a tutti i servizi: che dire dei servizi inattivi? E dei servizi che non sono stati caricati da systemd all’avvio?
Elenca tutti i servizi su Linux usando list-units
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 servizi solo utilizzando il filtro del tipo.
Come puoi vedere, sono elencati anche i servizi inattivi che potrebbero essere convenienti se hai appena scritto il tuo servizio e lo hai curato nell’elenco.
In questo caso, sono elencati solo i servizi caricati. All’avvio, systemd carica i file unit e può scegliere di non caricare un servizio specifico se scopre che non sarà utilizzato dal sistema.
Di conseguenza, c’è una reale differenza tra “caricato “E servizi” installati “. I servizi “installati” indicano che i file delle unità possono essere trovati nei percorsi corrispondenti.
Elenca servizi per stato
In alcuni casi, potresti essere interessato solo a servizi che hanno avuto esito negativo. Per questo, puoi specificare lo stato che stai cercando come opzione del comando systemctl.
Dove “state” può essere uno dei seguenti valori: active, inactive, activating, disattivazione, non riuscita, non trovata o morta.
Ad esempio, se siamo interessati solo ai servizi “non riusciti”, eseguiremo il seguente comando
Elenca tutti i file di servizio utilizzando list-unit-files
Infine, se sei interessato ai file di servizio “caricati”, “installati”, “disabilitati” e “abilitati”, c’è un altro comando potrebbe essere molto utile.
Per elencare tutti i file di servizio disponibili, devi usare il comando “systemctl” seguito da “list-unit-files”. Facoltativamente, è possibile specificare il tipo utilizzando l’opzione “–type = service”.
In alternativa, puoi utilizzare il comando “grep” per cercare percorsi specifici sul tuo sistema che potrebbero contenere file di servizio.
Congratulazioni, hai imparato come puoi elenca i servizi se il tuo sistema usa systemd!
Elenca i servizi usando il servizio
Il modo più semplice per elencare i servizi su Linux, quando sei su un sistema di inizializzazione SystemV, è usare il ” service “seguito dall’opzione” –status-all “. In questo modo, ti verrà presentato un elenco completo dei servizi sul tuo sistema.
Come puoi vedere, ogni servizio è elencati preceduti da simboli tra parentesi. Questi simboli significano:
- +: significa che il servizio e è in esecuzione;
- -: significa che il servizio non è affatto in esecuzione;
- ? : significa che Ubuntu non è stato in grado di capire 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 di inizializzazione. In alcuni script, come ad esempio lo script udev, puoi vedere che il comando “status” è implementato.
Questo non è il caso dello script” dns-clean “, ad esempio, che è il motivo per cui hai una domanda contrassegnare quando si interroga questo servizio.
Elenca servizi SysVinit nelle cartelle
Un altro modo per elencare l’elenco corrente di servizi è utilizzare il comando “ls” sulle cartelle contenenti tutti gli script su un sistema Linux, ovvero “/etc/init.d”.
Conclusione
In questo tutorial hai imparato come elencare facilmente i servizi su un sistema Linux sia che tu stia 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 ottenere ciò correttamente.
- Scrivere uno script di avvio per i sistemi init;
- Avvio dei servizi all’avvio utilizzando systemd;
Se sei interessato all’amministrazione del sistema Linux, abbiamo una sezione completa su questo argomento sul sito web, quindi assicurati di controllarlo.
Icone realizzate da Freepik da FlatIcon