Que tal runit
, "um esquema de inicialização do UNIX com supervisão de serviço" ?
Acho que corresponde aos seus requisitos, por exemplo
- "a supervisão de serviço do runit resolve as dependências dos daemons de serviço projetados para serem executados automaticamente por um processo de supervisor." ( mais )
- verificar um serviço em andamento pode ser feito por meio de
sv status service
- já existem muitas definições de serviço , prontamente utilizáveis e um bom recurso para criar as suas próprias
- é empacotado para várias distribuições e bastante bem estabelecido ( há uma página
lighttpd
wiki emrunit
, consulte também esses scripts de execução, incluindolighttpd
emongodb
- ele pode acomodar muitas variantes diferentes do daemon (ou seja, node.js não representa nenhum problema )
Eu não posso responder de forma inteligente a "um serviço em algumas variantes" , você pode definir os serviços separadamente ... (pode haver alguma solução symlink-and-examine-my-pwd para isso, mas não tenho certeza se tentar ser esperto aqui é uma boa idéia; pensando em sustentabilidade)
Editar Esta página do ArchWiki fornece uma visão geral rápida pode ser um começo melhor do que a página runit
.