查看所有任务状态: supervisorctl status
1 2 3 | # 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 服务名
1 2 | # supervisorctl status nginx nginx RUNNING pid 26073, uptime 1 day, 23:12:10 |
启动任务:supervisorctl start 服务名
1 2 3 4 | # supervisorctl stop nginx nginx: stopped #supervisorctl status nginx nginx STOPPED Jan 05 01:59 PM |
停止任务:supervisorctl stop 服务名
1 2 3 4 | # supervisorctl start nginx nginx: started # supervisorctl status nginx nginx RUNNING pid 32207, uptime 0:00:05 |
重启任务:supervisorctl restart 服务名
1 2 3 4 5 6 7 8 9 | # 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:
1 | supervisord -c /etc/supervisord.conf |
Unlinking stale socket /var/run/supervisor/supervisor.sock:
1 2 | find / -name supervisor.sock unlink /run/supervisor/supervisor.sock |
"unix:///tmp/supervisor.sock no such file" 错误处理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | supervisor是一个很方便的进程管理工具,可以极大的提高管理效率,但是在使用中也会遇到一些问题。 近日我在部署网站代码的时候遇到了如下提示的错误 unix: ///tmp/supervisor.sock no such file cd进/tmp/目录看了下,果然没有supervisor.sock文件。前一阵子用的时候还没有问题的。上网查了下,原来supervisor默认配置会把socket文件和pid守护进程生成在/tmp/目录下,<br>/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/下面。 |
启动或停止某个服务进程
1 2 3 4 5 6 | [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 |
一个名称管理多个服务进程:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | [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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能