Systemd:开始操作超时。终止

时间:2017-07-10 12:43:40

标签: python ubuntu flask systemd flask-socketio

我正在尝试为我的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手动启动它 - 它可以正常工作。它会暂停我的终端\ ssh窗口,但我可以关闭它,它的效果与预期的一样。

但是当我重新启动电脑时,它无法启动。使用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'.

我在这里做错了什么?

2 个答案:

答案 0 :(得分:4)

你的类型似乎是错误的,分叉是由程序自行分离。 Flask没有,它保持连接到您的控制台。

您的服务类型可能应为// add function template<typename T> T add(T a) { return a; } template<typename T, typename... Args> T add(T a, Args... args) { return a + add(args...); // a + a + a + .. + add() }

答案 1 :(得分:1)

设置更大的启动超时:

[Service]
TimeoutStartSec=300

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