systemctl não reconhece meu serviço: Default-Start não contém níveis de execução, abortando

13

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 errei entre o iniciante e o systemd: no começo, pensei que tinha que configurar um serviço inicial. Então, depois de converter meu arquivo em uma sintaxe inicial, executei update-rc.d mydaemon defaults.

Eu descobri o meu erro e executei update-rc.d mydaemon remove, converti para a sintaxe systemd e executei systemctl enable mydaemon, mas obtive 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.
CharlesB
fonte

Respostas:

14

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 /ubuntu/909523/default-start-contains-no-runlevels-aborting

nick fox
fonte
ver também wiki.debian.org/LSBInitScripts
Nick Fox
1
Meu script já tem esse leitor, mas ainda mostra exatamente o mesmo erro .. = [
Luciano Andress Martini 23/04
salvar meu dia :-) Muito obrigado
Aravinthan K
11

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

CharlesB
fonte
esta solução corrigiu o meu serviço
AmirHossein Rezaei 18/08/19
Penso que esta solução não funcionará se o script init for um script bash. Em vez de copiar o arquivo, os parâmetros nos níveis de execução devem ser adicionados como comentários, como Nick Fox postou em sua resposta.
LaTechneuse 03/03
Claro, a pergunta inicial está em um .servicearquivo, não em um script init do bash.
CharlesB
7

Só para acrescentar sobre a resposta de @CharlesB - quando cheguei a este estado que eu era capaz de simplesmente mover o arquivo a partir /etc/init.d/de /etc/systemd/system/e execute novamente o comando e ele funcionou corretamente:

sudo mv /etc/init.d/mydaemon /etc/systemd/system/
sudo systemctl enable mydaemon
Cory
fonte
1
Isso deve ser um comentário.
Gerald Schneider
Eu acho que é mais fácil seguir a resposta, por isso a fiz.
Cory
0

Eu tive o mesmo erro e o corrigi colocando as informações de início padrão, como segue:

vi /etc/init.d/greenbone-security-assistant

Alterar de:

# Default-Start:

para:

# Default-Start: 2 3 4 5

: wq

root @ kali: /etc/init.d# systemctl enable greenbone-security-assistant

Sincronizando o estado do greenbone-security-assistant.service com o script de serviço SysV com / lib / systemd / systemd-sysv-install.

Executando: / lib / systemd / systemd-sysv-install enable greenbone-security-assistant

Fernando Galves
fonte