supervisord(http://supervisord.org/introduction.html)是一个非常优秀的进程管理工具,使用Python开发。它可以在类UNIX系统的方式让用户来准确地监视和控制后台一定数量的服务进程。并作为一个天使进程让后台进程在当发生内部错误退出、或者进程被意外杀死时自动重启。除此之外,supervisord可以监控TCP端口,让其他主机通过客户端了命令supervisorctl通过HTTP协议直接对Server端进程进行启停,避免让进程/服务器管理者直接接触Shell或root用户。进程之间也有一个优先级和进程组关系,让管理员使用start all和stop all的关系来启动。
下面就让我们来介绍下supervisord监控服务必备命令:
supervisord : supervisor的服务器端部分,用于supervisor启动
supervisorctl:启动supervisor的命令行窗口,在该命令行中可执行start、stop、status、
1.手动启动:
supervisord -c /etc/supervisor/supervisord.conf
2.查看已启动服务
pstree -p | grep supervisord
3.查看log日志
cat /tmp/supervisord.log
4.用 supervisorctl 查看已经被监控的program
(注:直接用 #supervisorctl 会提示:http://localhost:9001 refused connection)
supervisorctl -c /etc/supervisor/supervisord.conf
5.执行supervisorctl reload的命令可以重启监控服务
supervisorctl reload
6.supervisorctl status命令查看运行状态
supervisorctl status
7. supervisord,初始启动Supervisord,启动、管理配置中设置的进程。
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx为[program:mhqdemo]里配置的值,这个示例就是mhqdemo。
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop all,停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。
以下参考文章 :supervisor常用命令
查看任务状态
# supervisorctl status SmartCoin RUNNING pid 13203, uptime 0:04:05 coin RUNNING pid 30744, uptime 17 days, 20:45:18 deepwellserver RUNNING pid 30257, uptime 30 days, 4:13:01 jingtumassetapi RUNNING pid 14536, uptime 45 days, 19:18:08 moac RUNNING pid 20015, uptime 15 days, 5:15:11 new RUNNING pid 10041, uptime 43 days, 22:41:56 nginx RUNNING pid 18752, uptime 22:59:40 redis RUNNING pid 14542, uptime 45 days, 19:18:08 sonyflakeserver FATAL can't find command 'go' sparkportal RUNNING pid 26073, uptime 1 day, 23:11:17 sparkportal2 RUNNING pid 25732, uptime 1 day, 23:11:21 sparkportal3 RUNNING pid 25834, uptime 1 day, 23:11:20 sparkportal4 RUNNING pid 25974, uptime 1 day, 23:11:18 sparkuser RUNNING pid 26957, uptime 9 days, 23:07:21 sparkwallet RUNNING pid 29045, uptime 5 days, 15:11:58 summaryservice RUNNING pid 14535, uptime 45 days, 19:18:08
第一列是服务名;第二列是运行状态,RUNNING表示运行中,FATAL 表示运行失败,STARTING表示正在启动,STOPED表示任务已停止; 第三/四列是进程号,最后是任务已经运行的时间。
查看单个任务状态: supervisorctl status 服务名
# supervisorctl status sparkportal sparkportal RUNNING pid 26073, uptime 1 day, 23:12:10
启动/停止/重启任务
1.启动任务
supervisorctl start 服务名 # supervisorctl stop sparkportal sparkportal: stopped #supervisorctl status sparkportal sparkportal STOPPED Jan 05 01:59 PM
2.停止任务
supervisorctl stop 服务名 # supervisorctl start sparkportal sparkportal: started # supervisorctl status sparkportal sparkportal RUNNING pid 32207, uptime 0:00:05
3.重启任务
supervisorctl restart 服务名 # supervisorctl restart sparkportal sparkportal: stopped sparkportal: started # supervisorctl status sparkportal sparkportal RUNNING pid 4952, uptime 0:00:03