相关疑难解决方法(0)

在启动时将python脚本作为守护进程运行(Ubuntu)

我用werkzeug创建了小型web服务器,我可以用普通的python方式运行它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)
Run Code Online (Sandbox Code Playgroud)

upstart配置文件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
Run Code Online (Sandbox Code Playgroud)

任何想法如何使其工作?或者任何其他更好的守护脚本的方法?

更新: 我认为问题在于my_server.py.它似乎并不首先启动Web服务器(方法run_simple()).应该采取哪些步骤使.py文件由任务处理程序(如upstart)运行?

  • 将shebang作为第一线 #!/usr/bin/env python
  • 允许执行权限 chmod 755
  • 以超级用户权限启动守护程序(绝对确保没有权限限制阻止它启动)
  • 确保所有python库都在那里!
  • 别的什么?

解决: 问题是缺少python依赖.通过任务管理器(例如upstartstart-stop-daemon)启动脚本时,不会抛出任何错误.需要绝对确定pythonpath包含您需要的一切.

python upstart werkzeug

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

python ×1

upstart ×1

werkzeug ×1