• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
孙龙 程序员
少时总觉为人易,华年方知立业难
博客园    首页    新随笔    联系   管理    订阅  订阅
supervisor

查看所有任务状态: 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

posted on 2018-12-03 13:55  孙龙-程序员  阅读(1855)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3