Systemd:启动操作超时。终止

Systemd: Start operation timed out. Terminating

我正在尝试为我的 python-flask-socketio 服务器创建一个自动启动服务。

我需要通过 systemd 启动一个 python 脚本。这是我的服务代码:

[Unit]
Description=AppName


[Service]
Type=forking
ExecStart=/usr/bin/python3 /opt/myapp/app.py

[Install]
WantedBy=multi-user.target

如果我尝试使用 sudo service myservice start 手动启动它 - 它工作正常。它停止了我的 terminal\ssh window 但我可以关闭它并且它按预期工作。

但是当我重新启动我的电脑时它没有启动。使用 systemctl status myservice 检查它的状态时,我得到以下信息:

systemd[1]: Starting My Service...
systemd[1]: myserivce.service: Start operation timed out. Terminating.
systemd[1]: Failed to start My Service.
systemd[1]: myserivce.service: Unit entered failed state.
systemd[1]: myserivce.service: Failed with result 'timeout'.

我做错了什么?

您的类型似乎有误,fork 是针对那些会立即自行分离的程序。 Flask 不会,它会一直连接到您的控制台。

您的服务类型应该是simple

设置更大的启动超时:

[Service]
TimeoutStartSec=300

以防您的服务实际上需要更多时间来完成启动。

您必须检查 /var/log/message。

启动服务后,如果您的脚本一开始正常运行然后失败,请尝试此操作。

ExecStart=/usr/bin/bash -c '/usr/bin/python3 /opt/myapp/app.py'