supervisorctl总是报告错误:错误(没有这样的文件)
我用uwsgi,supervisor和nginx部署我的django项目。 但我在/etc/supervisord.conf中添加了类似上面的程序。supervisorctl总是报告错误:错误(没有这样的文件)
[program:JZAssist]
command=-E uwsgi --ini /home/work/xxxx/uwsgi.ini
directory=/home/work/xxxx
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
和我uwsgi.ini内容是:
[uwsgi]
socket = :8000
chdir = /home/work/xxxx
module = xxxx.wsgi
master = true
processes = 4
vacuum = true
xxxx是我的项目名称。
我在cmd中运行supervisorctl -c /etc/supervisord.conf restart all
。 它显示的内容
xxxx: ERROR (no such file)
/tmp/supervisord.log部分:
2017-02-24 23:31:41,433 INFO gave up: JZAssist entered FATAL state, too many start retries too quickly
2017-02-24 23:52:29,940 WARN Failed to clean up '/tmp/JZAssist-stderr---supervisor-goPZyS.log'
2017-02-24 23:52:29,940 WARN Failed to clean up '/tmp/JZAssist-stdout---supervisor-WtfJcp.log'
2017-02-24 23:52:57,535 WARN Failed to clean up '/tmp/JZAssist-stderr---supervisor-goPZyS.log'
2017-02-24 23:52:57,535 WARN Failed to clean up '/tmp/JZAssist-stdout---supervisor-WtfJcp.log'
2017-02-24 23:52:57,541 INFO RPC interface 'supervisor' initialized
2017-02-24 23:52:57,541 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2017-02-24 23:52:57,542 INFO daemonizing the supervisord process
2017-02-24 23:52:57,543 CRIT could not write pidfile /tmp/supervisord.pid
2017-02-24 23:52:58,544 INFO spawnerr: can't find command '-E'
2017-02-24 23:52:59,546 INFO spawnerr: can't find command '-E'
2017-02-25 00:46:59,234 WARN Failed to clean up '/tmp/JZAssist-stderr---supervisor-goPZyS.log'
2017-02-25 00:46:59,234 WARN Failed to clean up '/tmp/JZAssist-stdout---supervisor-WtfJcp.log'
我不知道为什么它会报告错误,如that.I可以运行的runserver我的Django项目。那么文件丢失了什么?
在您的command=
行中,您指定程序运行为-E
,该管理程序找不到要执行的程序。
为作业创建文件时,命令行应该作为shell命令执行,并且不应该依赖于给定shell的内部命令。例如,我有一个麻烦与启动:
source /path/to/python/virtual/environment/bin/activate && ...
但source
是一个bash内建命令。我需要改变它来阅读:
bash -c 'source /path/to/python/virtual/environment/bin/activate && ...
这种方式,主管可以找到并运行可执行文件是bash
。
在你的情况下,看起来uwsgi应该是command=
之后的第一个东西。
您提到,您使用的-E
标志当您运行sudo
保存环境变量,但主管将不需要0
YE,这有点“混乱”的错误,特别是因为日志文件中没有解释正确的东西。 – Hvisage
什么是命令第一'-E'元素? – Antwane
使用-E在使用SUDO时保留环境变量 – xyxc
您的日志文件的内容是什么以及监督员的日志级别是什么? – chaos