我无法让supervisord工作;在使用以下命令启动该过程后:
# supervisord -n -c /etc/supervisord.conf
2013-05-29 11:34:11,861 CRIT Supervisor running as root (no user in config file)
2013-05-29 11:34:11,868 INFO supervisord started with pid 7893
从另一个终端,我得到:
# supervisorctl -c supervisord.conf status
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: <string> line: 1
在 vagrant、CentOS 6.3 x86_64 中运行。
配置:
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=500MB ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10 ; (num of main logfile rotation backups;default 10)
loglevel=info ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false ; (start in foreground if true;default false)
minfds=1024 ; (min. avail startup file descriptors;default 1024)
minprocs=200 ; (min. avail process descriptors;default 200)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
nocleanup=false
umask=022
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
[include]
files = /etc/supervisord.d/*.ini
尝试查找套接字文件:
# ls /var/run/supervisor.sock
ls: cannot access /var/run/supervisor.sock: No such file or directory
版本等:
# rpm -qi supervisor
Name : supervisor Relocations: (not relocatable)
Version : 2.1 Vendor: Fedora Project
Release : 8.el6 Build Date: Fri 02 Jul 2010 10:14:29 AM EDT
Install Date: Wed 29 May 2013 09:55:23 AM EDT Build Host: x86-18.phx2.fedoraproject.org
Group : System Environment/Base Source RPM: supervisor-2.1-8.el6.src.rpm
Size : 1164337 License: ZPLv2.1 and BSD and MIT
Signature : RSA/8, Fri 02 Jul 2010 12:36:46 PM EDT, Key ID 3b49df2a0608b895
Packager : Fedora Project
URL : http://www.plope.com/software/supervisor2/
Summary : A System for Allowing the Control of Process State on UNIX
Description :
The supervisor is a client/server system that allows its users to control a
number of processes on UNIX-like operating systems.
答案1
问题在于该版本太旧并且存在缺陷:
我已经升级了这个:https://github.com/haf/puppet-supervisor安装最新版本的supervisor。
核心问题似乎是第一次启动守护进程失败会在运行位置创建套接字文件,但 initv 脚本不支持删除它(因此必须手动完成)。
答案2
我遇到了同样的问题。原因是运行的是 2.x 版的 Supervisord,而不是 3.x 版。升级 Supervisord 解决了这个问题。