Sto cercando un modo per ottenere un elenco di tutti i servizi (/etc/init.d o upstart o systemd), che dovrebbero avviarsi (o essere stati avviati all'avvio).
Come si ottiene un elenco di tutti i servizi di avvio? - Conosco quella domanda e mi suggerisce di usare service --status-all
.
Ma questo non mi mostra quali servizi DEVONO ESSERE IN ESECUZIONE . Chiama tutti gli script init con status
argomento " ". Questo è un elenco di tutti i servizi che potrebbero essere in esecuzione.
Ma vorrei sapere se un servizio che era stato avviato all'avvio è ancora in esecuzione.
Esempio…
Ho webfs installato. Ma non voglio che funzioni all'avvio. Così ho reso invalido: sudo update-rc.d webfs disable
. E ho anche installato samba e dovrebbe essere in esecuzione all'avvio. Ma è fermo (per qualsiasi motivo). sudo service --status-all
non mi aiuta qui:
$ sudo service --status-all 2>/dev/null | grep -E 'samba$|webfs'
[ - ] samba
[ - ] webfs
Entrambi sono spenti ma non ne ho idea, quello (samba) dovrebbe essere acceso.
Così…
Come posso ottenere un elenco di tutti i servizi che si avviano all'avvio? E, come estensione, esiste un modo semplice per ottenere lo "stato" di questi servizi (in caso contrario, cercherò semplicemente questo elenco ed eseguirò "service $ service status", o qualcosa del genere).
Grazie Alexander
Modifica 04/05/2015: Sono su Ubuntu 14.04.
L'obiettivo principale di questa domanda è il seguente:
Ma vorrei sapere se un servizio che era stato avviato all'avvio è ancora in esecuzione.
Per questo initctl list
motivo , non aiuta molto. In realtà non prende in considerazione i servizi avviati dagli /etc/init.d
script (rispetto agli script di avvio in /etc/init
).
Anche un elenco di /etc/rc?.d/S*
non aiuta. Genererebbe un elenco di servizi, che potrebbe essere stato avviato in un determinato runlevel. Non mi mostra se un servizio, che avrebbe dovuto essere avviato, è ancora in esecuzione.
Fondamentalmente, sto cercando qualcosa di simile svcs -x
a Solaris per Ubuntu. Con svcs -x
, avrei output se un servizio, che è stato avviato, non è più in esecuzione. Questo, avrei bisogno anche per Ubuntu.
Motivo: vorrei avere un controllo (più o meno ...) generico per il nostro sistema di monitoraggio Icinga / Nagios, che mi avviserebbe se un servizio non è più in esecuzione, che dovrebbe essere in esecuzione. Dato che abbiamo molti server diversi per molti clienti diversi, non è davvero scalabile per definire un elenco di servizi "importanti".
initctl list
quale elenca i processi che sono avviati / in esecuzione, ma
initctl list
. Ma questo non risponde davvero, poiché mostrerebbe anche i servizi avviati manualmente. E non mostra i servizi che non sono in esecuzione.