我已经使用werkzeug创建了小型web服务器,并且能够以通常的Python方式运行它,使用python my_server.py
。页面加载,一切正常。现在我想在我的电脑启动时启动它。最简单的方法是什么?我一直在努力与暴发户,但它似乎并没有“生活在一个背景”因为我执行start my_server
后,我立即收到kernel: [ 8799.793942] init: my_server main process (7274) terminated with status 1
在启动时运行python脚本作为守护进程(Ubuntu)
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 <[email protected]>"
start on runlevel [2345]
stop on runlevel [016]
exec /path/to/my_server.py
start on startup
任何想法如何使它工作?或者任何其他更好的方式来守护脚本?
更新: 我相信问题在于my_server.py
。它似乎并没有首先启动网络服务器(方法run_simple()
)。应该采取哪些步骤来让.py文件由任务处理程序运行,如新贵?
- 将家当作为一线
#!/usr/bin/env python
- 允许执行权限
chmod 755
- 开始与超级用户权限的守护程序(以绝对确保没有任何权限限制阻止其启动)
- 确保所有的Python库那里!
- 还有别的吗?
解决: 问题是缺少蟒蛇依赖。通过任务管理器启动脚本时(例如upstart
或start-stop-daemon
),不会引发错误。需要绝对确定pythonpath包含你需要的一切。
尝试运行级别235并形成你运行服务器的用户你使用4000权限的端口,这需要管理员的权限。 – Denis
我以超级用户身份运行它,并将运行级别更改为235并没有帮助。 – and3p
您的应用程序的依赖项服务可能尚未启动吗?像一些数据库? – tdihp