systemd service ativo mas não executando

0

Eu tenho o seguinte arquivo launcher.sh:

cd /root/craig/mybot
tmux new-session -d -s mybot "'/usr/bin/python3.5' launcher.py --start --auto-restart"

Eu tenho o seguinte arquivo mybot.service em / systemd / system:

[Unit]
After=network.target

[Service]
ExecStart=/root/craig/mybot/launcher.sh

[Install]
WantedBy=default.target

Quando executo /root/craig/mybot/launcher.sh , funciona perfeitamente, mas quando eu reinicio meu servidor, o serviço é iniciado e parece que o launcher.sh nunca é iniciado (porque o bot nunca fica online). Por que é isso? O serviço é mostrado como ativado. Eu estou no centOS 7.

Quando executo systemctrl status mybot , obtenho:

May 25 03:48:56 vultr.guest systemd[1]: Starting mybot.service...
May 25 03:48:56 vultr.guest systemd[818]: Failed at step EXEC spawning /root/craig/mybot/launcher.sh: Exec format error
May 25 03:48:56 vultr.guest systemd[1]: mybot.service: control process exited, code=exited status=203
May 25 03:48:56 vultr.guest systemd[1]: Failed to start mybot.service.
May 25 03:48:56 vultr.guest systemd[1]: Unit mybot.service entered failed state.
May 25 03:48:56 vultr.guest systemd[1]: mybot.service failed.
    
por Craig 25.05.2018 / 05:23

1 resposta

3

I have the following launcher.sh file:

[…]

May 25 03:48:56 vultr.guest systemd[818]: Failed at step EXEC spawning /root/craig/mybot/launcher.sh: Exec format error

O systemd não é um interpretador de shell. Ele não faz o que os shells fazem, incluindo os próprios programas de interpretação, se não puderem executá-los diretamente como arquivos de imagem do programa.

/root/craig/mybot/launcher.sh não é um executável válido que pode ser usado como um arquivo de imagem de programa pela chamada de sistema execve() . Para ser assim, ele precisa ter o número mágico denotado pelos caracteres #! nos dois primeiros bytes do arquivo, seguido pelo nome do caminho do interpretador que interpretará o restante do arquivo.

Leitura adicional

por 25.05.2018 / 09:46