Supervisord(退出状态1;not expected)centos python

bwleehnv  于 2023-04-06  发布在  Python
关注(0)|答案(2)|浏览(391)

与监督员一起遇到其他问题。
Centos 6.5 supervisor python 2.6与OS python 2.7一起安装在/usr/local/bin中
受监督程序设置

[program:inf_svr]
process_name=inf_svr%(process_num)s
directory=/opt/inf_api/
environment=USER=root,PYTHONPATH=/usr/local/bin/
command=python2.7 /opt/inf_api/inf_server.py --port=%(process_num)s
startsecs=2
user=root
autostart=true
autorestart=true
numprocs=4
numprocs_start=8080
stderr_logfile = /var/log/supervisord/tornado-stderr.log
stdout_logfile = /var/log/supervisord/tornado-stdout.log

我可以用以下命令运行inf_server.py:

python2.7 inf_server.py --port=8080

没有问题。我确保文件是可执行的(这是我以前的问题)。
有什么想法吗?
更新:我甚至不能让它启动一个基本的Python脚本而不失败。开始时注解掉旧程序,添加一个新程序,然后放入:

command=python /opt/inf_api/test.py

其中test.py只是在屏幕和文件中写入一些内容。退出状态为0时失败。所以我开始添加python的位置(在使用'which python'发现它之后)

environment=PYTHONPATH=/usr/bin

尝试将路径放在单引号中,尝试将USER=root添加到环境中,尝试添加

directory=opt/inf_api/

尝试添加

user=root

所有同样的事情,退出状态0。似乎没有添加到任何日志文件,除了我看到的调试监督。
伙计,我不知所措。

hrysbysz

hrysbysz1#

事实证明,这是Supervisord如何从python捕获错误消息的问题。因为它不是。我运行它来启动一个tornado应用程序,它调用第二个python文件,以便它可以生成n个tornado服务器示例。如果第二个python应用程序中有错误,那么它就不会捕捉它们并将它们保存到日志文件中。我尝试了各种方法,但最终不得不自己用try:除了:并保存到我自己的日志文件。可能是好的实践,无论如何,但谈论一个回合的方式去做。

ql3eal8s

ql3eal8s2#

尝试查看错误日志文件/var/log/supervisord/tornado-stderr.log。

相关问题