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 '