进入Supervisord的其他问题。
Centos 6.5 监 随操作系统安装的python 2.6 python 2.7安装在/ usr / local / bin
中supervisord程序设置
[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.pypython2.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.除了我从supervisord的调试中看到的内容外,似乎没有任何内容添加到任何日志文件中。
男人我不知所措。
答案 0 :(得分:0)
这是Supervisord如何从python捕获错误消息的问题。因为它不是。我运行它来启动龙卷风应用程序,它调用第二个python文件,以便它可以产生n个龙卷风服务器实例。如果第二个python应用程序中存在错误,那么它不会捕获它们并将它们保存到日志文件中。我尝试了各种方法,但最终不得不尝试使用try来捕获它们:除了:并将其保存到我自己的日志文件中。无论如何可能都是很好的实践,但谈论关于实现这一目标的方法。