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'
我正在尝试为我的 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'