systemctl não reconhece meu serviço: Default-Start não contém runlevels, abortando

6

Eu quero definir um serviço simples para ser iniciado na inicialização, estando no servidor Ubuntu 16.10. Então eu criei um /etc/init.d/mydaemon

De alguma forma eu estraguei tudo entre o upstart e o systemd: no começo, achei que tinha que configurar um serviço iniciante. Então, depois de converter meu arquivo para uma sintaxe upstart, eu corri update-rc.d mydaemon defaults .

Eu descobri o erro e executei update-rc.d mydaemon remove , converti para a sintaxe do systemd e executei systemctl enable mydaemon , mas recebi o erro:

mydaemon.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mydaemon
update-rc.d: error: mydaemonDefault-Start contains no runlevels, aborting.
    
por CharlesB 11.05.2017 / 15:27

3 respostas

5

O problema foi a localização do arquivo, no servidor Ubuntu ele espera em /etc/systemd/system , /etc/init.d/ é para arquivos legados.

    
por 11.05.2017 / 15:27
5

Eu tive o mesmo erro ao portar um script sysv de uma caixa redhat para o Ubuntu. Eu precisava adicionar alguns cabeçalhos ao script

### BEGIN INIT INFO
# Provides:          my-service-name
# Required-Start:    $all
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: your description here
### END INIT INFO

encontrado em link

    
por 14.02.2018 / 12:31
3

Só para adicionar a resposta de @CharlesB - quando cheguei nesse estado, consegui simplesmente mover o arquivo de /etc/init.d/ para /etc/systemd/system/ e executar novamente o comando e ele funcionou corretamente:

sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon
    
por 06.09.2017 / 11:45