yum install supervisor
默认配置文件目录: /etc/supervisor/supervisord.conf
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
minfds=65536
logfile=/data/logs/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/data/logs/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[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
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf
/usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
配置模板:
[program:my_queue] //program后为进程名
command=/usr/bin/php app/consumers/my_queue.php
directory=/data/www
numprocs=3 //启动的进程数
process_name=%(program_name)s_%(process_num)02d
autostart=true //自动启动
autorestart=true //自动重启
redirect_stderr=true //如果是true,则进程的stderr输出被发送回其stdout文件描述符上的
user=weihaoyu //启动进程的用户
stopwaitsecs=10 //停止前等待的秒数
stdout_logfile=/data/logs/supervisor/my_queue_stdout.log //停止时打印日志
stopsignal=INT //停止信号,防止 kill 误操作
常用命令:
- supervisorctl status查看所有进程的状态
- supervisorctl status im:查看名字包含im的进程的状态
- supervisorctl stop es:停止es
- supervisorctl start es:启动es
- supervisorctl restart es: 重启es
- supervisorctl update :配置文件修改后可以使用该命令加载新的配置
- supervisorctl reload: 重新启动配置中的所有程序
- 直接使用supervisorctl可进入交互模式,直接使用上面命令即可