0%

supervisor常见问题

Supervisor常见问题

[TOC]

安装

1
2
3
apt-get install supervisor 

pip install supervisor

配置文件在

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/etc/supervisor/supervisord.conf

[program:process_node]
command=python /home/x/mt4client/process_node.py -n ss1@127.0.0.1 -c 123456 2>&1 &
autorstart=true
stdout_logfile=/home/x/mt4client/log/process_node.log

[inet_http_server] ; supervisor web管理服务器
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))

[supervisord]
logfile=/tmp/supervisord.log ; 日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB ; 日志文件大小,超出会 rotate,默认 50MB
logfile_backups=10 ; 日志文件保留备份数量默认 10
loglevel=info ; 日志级别,默认 info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ; pid 文件
nodaemon=false ; 是否在前台启动,默认是 false,即以 daemon 的方式启动
minfds=1024 ; 可以打开的文件描述符的最小值,默认 1024
minprocs=200 ; 可以打开的进程数的最小值,默认 200

[include]
files = relative/directory/*.ini ; 包含其他的配置文件 可以是 *.conf 或 *.ini

命令

1
2
supervisord -c /etc/supervisord.conf  # 启动
supervisorctl reload # 重新加载配置文件 会重启配置的program

supervisord是否以daemon方式运行,是在supervisord.conf的supervisord项里配置的,当配置了nodaemon=true时,就是以非daemon方式运行。与它是非带参数运行没有关系。

它监控的进程是否随着supervisord被杀而退出跟supervisord是否以daemon方式运行没有关系。使用kill -9杀死supervisord时,supervisord就会来不及告诉它监控的进程,它已经死了,它监控的进程变成了孤儿进程。当使用kill -15杀死supervisord时,supervisord有足够的时间来处理监控的进程,它监控的进程会跟着supervisord一起死的。

问题

Q: Starting supervisor: Unlinking stale socket /var/run/supervisor.sock

安装python-meld3

1
2
aptitude install python-meld3
pip install meld3==0.6.7

如果报错

1
2
3
4
The program 'aptitude' can be found in the following packages:
* aptitude
* aptitude-gtk
Try: apt-get install <selected package>

执行

1
apt-get install aptitude aptitude-gtk

error: <class ‘socket.error’>, [Errno 13] Permission denied: file: /usr/local/lib/python2.7/socket.py line: 228

权限问题

修改配置文件supervisord.conf

1
2
3
[unix_http_server]
file=/tmp/supervisor.sock ; (the path to the socket file)
chmod=0766 ; socket file mode (default 0700)

unix:///tmp/supervisor.sock no such file

修改supervisord.conf

修改所有/tmp路径到其他路径

/tmp/supervisor.sock 改为 /var/run/supervisor.sock

然后修改新路径权限

1
chmod 775 /var/run

重新启动 supervisord