我已经使用 werkzeug 创建了小型 Web 服务器,并且可以使用python my_server.py
. 页面加载,一切正常。现在我想在我的电脑启动时启动它。最简单的方法是什么?我一直在与暴发户斗争,但它似乎并没有“生活在后台”,因为在我执行后start my_server
我立即收到kernel: [ 8799.793942] init: my_server main process (7274) terminated with status 1
my_server.py:
...
if __name__ == '__main__':
from werkzeug.serving import run_simple
app = create_app()
run_simple('0.0.0.0', 4000, app)
新贵配置文件 my_server.conf:
description "My service"
author "Some Dude <blah@foo.com>"
start on runlevel [2345]
stop on runlevel [016]
exec /path/to/my_server.py
start on startup
任何想法如何使它工作?或者任何其他更好的方式来守护脚本?
更新:
我相信问题出在my_server.py
. 它似乎并没有首先启动网络服务器(方法run_simple()
)。应该采取哪些步骤来使 .py 文件由任务处理程序(例如 upstart)运行?
- 将shebang作为第一行
#!/usr/bin/env python
- 允许执行权限
chmod 755
- 以超级用户权限启动守护进程(绝对确保没有权限限制阻止它启动)
- 确保所有 python 库都在那里!
- 还有什么?
已解决:
问题在于缺少 python 依赖项。通过任务管理器(例如upstart
或start-stop-daemon
)启动脚本时,不会引发错误。需要绝对确定 pythonpath 包含你需要的一切。