gpt4 book ai didi

python - 使用主管运行 python 脚本

转载 作者:行者123 更新时间:2023-11-30 23:06:16 25 4
gpt4 key购买 nike

复制here将我的 Python 代码作为守护进程运行。为了额外的正常运行时间。我认为使用主管来保持这个守护进程运行是一个更好的想法。

我就是这么做的。python_deamon.conf

[program:python_deamon]
directory=/usr/local/python_deamon/
command=/usr/local/python_venv/bin/python daemon_runnner.py start
stderr_logfile=/var/log/gunicorn.log
stdout_logfile=/var/log/gunicorn.log
autostart=true
autorestart=true

问题是,尽管主管成功启动了 python_daemon,但它仍然不断重试。

2015-09-23 16:10:45,592 CRIT Supervisor running as root (no user in config file)
2015-09-23 16:10:45,592 WARN Included extra file "/etc/supervisor/conf.d/python_daemon.conf" during parsing
2015-09-23 16:10:45,592 INFO RPC interface 'supervisor' initialized
2015-09-23 16:10:45,592 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2015-09-23 16:10:45,592 INFO supervisord started with pid 13880
2015-09-23 16:10:46,595 INFO spawned: 'python_deamon' with pid 17884
2015-09-23 16:10:46,611 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:47,614 INFO spawned: 'python_deamon' with pid 17885
2015-09-23 16:10:47,630 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:49,635 INFO spawned: 'python_deamon' with pid 17888
2015-09-23 16:10:49,656 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:52,662 INFO spawned: 'python_deamon' with pid 17891
2015-09-23 16:10:52,680 INFO exited: python_deamon (exit status 1; not expected)
2015-09-23 16:10:53,681 INFO gave up: python_deamon entered FATAL state, too many start retries too quickly

仅供记录,在重写 run() 方法之后,我从未返回任何内容。

有可能做我想做的事还是我很蠢?

P.S:我知道整个问题的根本原因是,由于 run() 永远不会返回任何内容,主管不断尝试启动它,因此认为进程失败并给出状态 FATAL 退出太快(进程日志可能有详细信息)

我真正的问题是我做得对吗?或者可以这样完成吗?

P.P.S:独立(没有主管)daemon_runnner.py 在有或没有 sudo 权限的情况下都可以正常运行。

最佳答案

尝试设置startsecs = 0:

[program:foo]
command = ls
startsecs = 0
autorestart = false
http://supervisord.org/configuration.html

startsecs

启动后程序需要保持运行状态的总秒数才能视为启动成功。如果程序在启动后没有保持这么多秒,即使它以“预期”退出代码退出(请参阅退出代码),启动也将被视为失败。设置为 0 表示程序不需要保持运行任何特定的时间。

关于python - 使用主管运行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32737493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com