Eu diria que não olhe para a atual distribuição para determinar qual sistema init usar para gerenciar daemons:
- É um pouco nebuloso determinar uma distro (como descrito na resposta de Dennis)
- o sistema init em uso muda entre as versões de uma distro (como Michael Hampton observou, as distribuições de grande nome estão gravitando em direção ao systemd; o Ubuntu é atualmente o grande nome e planeja mudar até 2016).
- O sistema init pode ser alterado em uma instalação individual a partir do padrão (a partir de 14.10 Utopic Unicorn em outubro, algumas instalações do Ubuntu podem optar por alternar para o systemd antes do tempo).
Embora isso não seja infalível (um sistema pode optar por instalar vários sistemas init juntos), a maneira que eu faria seria procurar a presença das próprias ferramentas :
if command -v systemctl >/dev/null; then
# assume systemd
systemctl $command $servicename
elif command -v initctl >/dev/null; then
# assume upstart
initctl $command $servicename
elif command -v service >/dev/null; then
# assume old Debian 'service' utility
service $servicename $command
# ... elif cases for any other utils you'd want to check for ...
else
# assume bare init.d scripts
/etc/init.d/$servicename $command
fi
Esta resposta a uma pergunta semelhante descreve algumas outras heurísticas que você pode usar para determinar o sistema init atualmente em uso , para casos em que isso não é preciso o suficiente.
Em última análise, porém, não há uma maneira de realmente detectar qual sistema init uma instalação "usa" - é possível criar uma configuração que alterna entre os sistemas init toda vez que é inicializada.