进一步阅读

进一步阅读

我有以下 launcher.sh 文件:

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

然后我在 /systemd/system 中有以下 mybot.service 文件:

[Unit]
After=network.target

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

[Install]
WantedBy=default.target

当我运行时/root/craig/mybot/launcher.sh它工作得很好,但是当我重新启动服务器时,服务启动,并且似乎 launcher.sh 从未启动(因为机器人从未上线)。为什么是这样?该服务显示为已启用。我用的是centOS 7。

当我跑步时systemctrl status mybot,我得到:

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.

答案1

我有以下 launcher.sh 文件:

[…]

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

systemd 不是 shell 解释器。 它不做 shell 所做的事情,包括如果不能直接将程序作为程序映像文件执行,则回退到解释程序本身。

/root/craig/mybot/launcher.sh不是可被系统调用用作程序映像文件的有效可执行文件execve()。为此,它需要具有由#!文件前两个字节中的字符表示的幻数,后跟将解释文件其余部分的解释器的路径名。

进一步阅读

相关内容