【问题标题】:Supervisord (exit status 1; not expected) centos pythonSupervisord(退出状态1;不是预期的)centos python
【发布时间】:2014-04-07 20:27:52
【问题描述】:

Supervisord 遇到了其他问题。

Centos 6.5 导师 随操作系统安装的 python 2.6 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。除了我从 supervisord 的调试中看到的之外,似乎也没有添加到任何日志文件中。

我很茫然。

【问题讨论】:

    标签: python python-2.7 centos centos6 supervisord


    【解决方案1】:

    这原来是 Supervisord 如何从 python 捕获错误消息的问题。正如它不是。我运行它来启动一个龙卷风应用程序,该应用程序调用第二个 python 文件,因此它可以生成 n 个龙卷风服务器实例。如果第二个 python 应用程序中有错误,那么它不会捕获它们并将它们保存到日志文件中。我尝试了各种方法,但最终不得不自己用 try: except: 捕获它们并将其保存到我自己的日志文件中。无论如何,这可能是一种很好的做法,但请谈谈如何进行。

    【讨论】:

      猜你喜欢
      • 2014-03-28
      • 1970-01-01
      • 2015-05-10
      • 2018-05-01
      • 2019-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多