Estou procurando uma maneira de obter uma lista de todos os serviços (/etc/init.d ou upstart ou systemd), que deveriam estar iniciando (ou tendo sido iniciados na) inicialização.
Como você obtém uma lista de todos os serviços iniciais? - Eu conheço essa pergunta, e ela sugere usarservice --status-all
.
Mas isso não me mostra quais serviços deveriam funcionar . Ele chama todos os scripts init com " status
" argumento. Esta é uma lista de todos os serviços que podem estar em execução.
Mas eu gostaria de saber se um serviço que foi iniciado na inicialização ainda está em execução.
Exemplo…
Eu tenho webfs instalados. Mas eu não quero que ele esteja sendo executado na inicialização. Assim eu desativou: sudo update-rc.d webfs disable
. E eu também tenho o samba instalado e ele deve estar sendo executado na inicialização. Mas está parado (por qualquer motivo). sudo service --status-all
não me ajuda aqui:
$ sudo service --status-all 2>/dev/null | grep -E 'samba$|webfs'
[ - ] samba
[ - ] webfs
Ambos estão desligados, mas não tenho idéia, de que um (samba) deve estar ligado.
Então…
Como eu pude obter uma lista de todos os serviços que estão iniciando na inicialização?E, como uma extensão, existe uma maneira fácil de obter o "status" desses serviços (se não, eu simplesmente percorrerei esta lista e executarei "service $ service status", ou algo assim).
Obrigado Alexander
Editar 04-05-2015: Estou no Ubuntu 14.04.
O foco principal desta pergunta é o seguinte:
Mas eu gostaria de saber se um serviço que foi iniciado na inicialização ainda está em execução.
Por isso, initctl list
não ajuda muito. Realmente não leva em consideração os serviços iniciados pelos /etc/init.d
scripts (em comparação com os scripts iniciais /etc/init
).
Também uma lista de /etc/rc?.d/S*
não ajuda. Isso geraria uma lista de serviços, que poderiam ter sido iniciados em um determinado nível de execução. Não me mostra se um serviço que deveria ter sido iniciado ainda está em execução.
Basicamente, estou procurando algo como o svcs -x
Solaris para Ubuntu. Com svcs -x
, eu teria saída se um serviço iniciado, não estivesse mais em execução. Isso, eu precisaria do Ubuntu também.
Motivo: eu gostaria de fazer uma verificação (mais ou menos ...) genérica para o nosso sistema de monitoramento Icinga / Nagios, que me alertaria se um serviço não estivesse mais sendo executado, que deveria estar em execução. Como temos muitos servidores diferentes para muitos clientes, não é realmente possível definir uma lista de serviços "importantes".
initctl list
que lista os processos que são iniciados / corrida, mas essa lista também inclui processos que são iniciados manualmente
initctl list
. Mas isso realmente não responde, pois também mostraria serviços iniciados manualmente. E não mostra serviços que não estão em execução.