A solução limpa é verificar qual sistema init está em uso e só execute o comando que se aplica ao sistema init que está em uso.
Meu aplicativo deve ser executado em sistemas executados em plataformas systemd e mais antigas, nas quais o systemd não está disponível. Então, estou registrando meu serviço no nível de execução usando chkconfig e systemctl enable.
O que devo fazer para desativar meu serviço no nível de execução? Devo desabilitar usando systemctl e chkconfig?
A solução limpa é verificar qual sistema init está em uso e só execute o comando que se aplica ao sistema init que está em uso.
Para sysvinit systems chkconfig , crie um link para o script que executa seu serviço a partir de /etc/rc.d/init.d e coloque-o em /etc/rc*.d , dependendo do nível de execução especificado para seu serviço
Para systemd systems systemctl enable , crie um link e coloque-o na pasta deferent em chkconfig nos sistemas sysvinit .
Por exemplo, para o nível de vários usuários, coloque-o em /etc/systemd/system/multi-user.target.wants/
Para sua situação, se você tiver um script em execução em /etc/init.d
So when you call systemd, desative it remove the link from / etc / systemd / system / X /
But when you call chkconfig in sysvinit it remove the link from / etc / rc * .d '