查看所有任务状态: supervisorctl status
# supervisorctl status nginx RUNNING pid 18752, uptime 22:59:40 redis RUNNING pid 14542, uptime 45 days, 19:18:08
第一列是服务名;
第二列是运行状态,RUNNING表示运行中,FATAL 表示运行失败,STARTING表示正在启动,STOPED表示任务已停止;
第三/四列是进程号,最后是任务已经运行的时间。
查看单个任务状态: supervisorctl status 服务名
# supervisorctl status nginx nginx RUNNING pid 26073, uptime 1 day, 23:12:10
启动任务:supervisorctl start 服务名
# supervisorctl stop nginx nginx: stopped #supervisorctl status nginx nginx STOPPED Jan 05 01:59 PM
停止任务:supervisorctl stop 服务名
# supervisorctl start nginx nginx: started # supervisorctl status nginx nginx RUNNING pid 32207, uptime 0:00:05
重启任务:supervisorctl restart 服务名
# supervisorctl restart nginx nginx: stopped nginx: started # supervisorctl status nginx nginx RUNNING pid 4952, uptime 0:00:03 其他命令: supervisorctl help:帮助命令 supervisorctl update :配置文件修改后可以使用该命令加载新的配置 supervisorctl reload: 重新启动配置中的所有程序
supervisor 提示Error: Server requires authentication:
supervisord -c /etc/supervisord.conf
Unlinking stale socket /var/run/supervisor/supervisor.sock:
find / -name supervisor.sock unlink /run/supervisor/supervisor.sock
"unix:///tmp/supervisor.sock no such file" 错误处理:
supervisor是一个很方便的进程管理工具,可以极大的提高管理效率,但是在使用中也会遇到一些问题。 近日我在部署网站代码的时候遇到了如下提示的错误 unix:///tmp/supervisor.sock no such file cd进/tmp/目录看了下,果然没有supervisor.sock文件。前一阵子用的时候还没有问题的。上网查了下,原来supervisor默认配置会把socket文件和pid守护进程生成在/tmp/目录下,
/tmp/目录是缓存目录,Linux会根据不同情况自动删除其下面的文件。原因找到了,就好办了,将supervisor配置文件里的相应地方改掉就好了。 打开配置文件 vi /etc/supervisord.conf 修改如下标示的几行即可 [unix_http_server] ;file=/tmp/supervisor.sock ; (the path to the socket file) file=/var/run/supervisor.sock ; 修改为 /var/run 目录,避免被系统删除 ;chmod=0700 ; socket file mode (default 0700) ;chown=nobody:nogroup ; socket file uid:gid owner ;username=user ; (default is no username (open server)) ;password=123 ; (default is no password (open server)) ... [supervisord] ;logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log) logfile=/var/log/supervisor/supervisord.log ; 修改为 /var/log 目录,避免被系统删除 logfile_maxbytes=50MB ; (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=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid) pidfile=/var/run/supervisord.pid ; 修改为 /var/run 目录,避免被系统删除 ... [supervisorctl] ; 必须和'unix_http_server'里面的设定匹配 ;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket serverurl=unix:///var/run/supervisor.sock ; 修改为 /var/run 目录,避免被系统删除 ;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket ;username=chris ; should be same as http_username if set ;password=123 ; should be same as http_password if set ... 保存退出后再执行如下语句,加载更新过的配置文件 supervisorctl update 至此就可以了,socket文件supervisor.sock和守护进程supervisord.pid两个文件放在/var/run/下面,log文件supervisord.log放在/var/log/下面。
启动或停止某个服务进程
[root@localhost supervisord.d]# supervisorctl stop eventTask:* eventTask:eventTask_00: stopped eventTask:eventTask_01: stopped [root@localhost supervisord.d]# supervisorctl start eventTask:* eventTask:eventTask_00: started eventTask:eventTask_01: started
一个名称管理多个服务进程:
[program:vaultier-worker] command=/opt/vaultier/venv/bin/celery -A vaultier worker directory=/opt/vaultier environment=PATH="/opt/vaultier/venv/bin",DJANGO_SETTINGS_MODULE="vaultier_conf",PYTHONPATH="/opt/vaultier/venv/lib/python2.7/site-packages/vaultier" user=vaultier numprocs=1 autostart=true autorestart=true startsecs=1 stopwaitsecs = 600 [program:vaultier-celerybeat] command=/opt/vaultier/venv/bin/celery -A vaultier beat directory=/opt/vaultier environment=PATH="/opt/vaultier/venv/bin",DJANGO_SETTINGS_MODULE="vaultier_conf",PYTHONPATH="/opt/vaultier/venv/lib/python2.7/site-packages/vaultier" user=vaultier numprocs=1 autostart=true autorestart=true startsecs=1 stopwaitsecs = 600 [group:vaultier] programs=vaultier-celerybeat,vaultier-worker
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/articles/10058055.html