我有一个相当基本的主管配置:
[program:drape]
process_name=%(program_name)s_%(process_num)02d
command=python /home/ubuntu/drape/workers/drape.py
numprocs=1
autostart=true
autorestart=true
nocleanup=true
stdout_logfile=/home/ubuntu/supervisord.out.log
stdout_logfile_maxbytes=32MB
stderr_logfile=/home/ubuntu/supervisord.err.log
stderr_logfile_maxbytes=32MB
startsecs=180
我认为这个配置实际上并不重要,但无论如何还是要发布。我正在使用库存主管全局配置。我通过标准安装了主管sudo apt-get -y install supervisor
……只是为了确保:
$ sudo apt-get -y install supervisor
Reading package lists... Done
Building dependency tree
Reading state information... Done
supervisor is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 69 not upgraded.
然而,当我尝试启动主管时,我得到了一个完全无声的失败:
ubuntu@...:~$ sudo service supervisor start
ubuntu@...:~$
日志中没有任何内容(我的全局配置有logfile=/var/log/supervisor/supervisord.log
),并且“程序日志”中也没有任何内容(logfile=/var/log/supervisor/supervisord.log.<stream>.log
)。
对于运行 ruby 守护进程的其他服务器,我也有一个类似的配置过程,因此为了进一步深入了解,我甚至创建了一个非常简单的 ruby 脚本并使其chmod 777
不存在权限问题:
$ cat test.rb
while 1
puts "hi"
sleep 1
end
$ ruby test.rb
hi
hi
hi
...
我的问题更像是“我应该查看哪里”的问题。如果主管没有记录任何内容,我能想到的唯一其他地方就是系统日志,但对我来说,这并没有什么异常。
答案1
对于那些可能正在为此苦苦挣扎的人来说,这只是一个建议,尝试直接运行守护进程
/usr/bin/supervisord
你实际上应该查看错误停止监控程序运行。监控程序初始化脚本对于查找配置错误毫无用处。
答案2
静默失败是由于此行失败造成的:
DAEMON=/usr/bin/supervisord
test -x $DAEMON || exit 0
在主管初始化脚本中。看起来出于某种原因,/usr/local/bin/
这台机器上安装了主管。什么都没有打印出来,真是太烦人了……