Em qualquer sistema que use o systemd, a execução direta de um script init.d não será a melhor maneira de iniciar um serviço, pois ele ignorará todas as configurações e a contabilidade normalmente feitas pelo próprio systemd. Além disso, você pode até não ter um script de inicialização, o serviço pode ser descrito apenas em um arquivo de unidade.
Com o sysvinit de "estilo antigo" não havia muita escrituração para fazer: iniciar um serviço era praticamente o mesmo que executar um script. Isso não significa que foi uma boa idéia para o script de inicialização diretamente, a descrição na página de manual de service
diz o porquê:
service
runs a System V init script or upstart job in as predictable an environment as possible, removing most environment variables and with the current working directory set to /.
Um shell aleatório não é um ambiente muito previsível, você poderia ter, por exemplo limites de arquivo ou processo ativos.
Quanto à depreciação, talvez você deva usar systemctl
, mas no Debian service
na verdade tenta fazer a coisa certa e executa systemctl
para você. (Digamos apenas que, se service
for reprovado, executar um script de inicialização diretamente é ainda mais).
(Eu não sou o suficiente de um especialista do systemd para dizer exatamente o que mata o serviço se você executar o script init diretamente. Isso também depende do que executa o script que você está executando: do cron, da linha de comando, do outra coisa ...)