点击上方蓝字
关注大侠之运维
supervisor是python写的一款进程管理的程序,通过服务端supervisord去控制子进程,支持子进程的启动,关闭,重启,查看.
这款进程管理软件可以web页面查看进程状态,可以在页面上控制启停.
先来看张图,对服务器上的一些agent进行管理,也可以对一些web服务进程进行管理,可以查看一些简单的启动日志.

♦️
安装
安装的话,也比较简单,因为是python写的,可以直接pip安装
pip install supervisor
如果是centos系统,可以直接yum安装,也建议这种方式安装
可以对服务端开启开机启动,上述方式还需要自行配置
yum install supervisor
#开启开机启动,主机异常宕机后,可快速恢复服务
systemctl enable supervisord
♦️
配置
然后就是配置了,分为服务端配置以及子进程配置文件
服务端配置文件,下面是一些默认的配置文件,web服务默认是关闭的,我这里打开了,建议内网服务可以开启.
[root@test-3 supervisord.d]# cat etc/supervisord.conf |grep -v '^;'|grep -v '^$'[unix_http_server]file=/var/run/supervisor/supervisor.sock ; (the path to the socket file)[inet_http_server] ; inet (TCP) server disabled by defaultport=0.0.0.0: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=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.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=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)nodaemon=false ; (start in foreground if true;default false)minfds=1024 ; (min. avail startup file descriptors;default 1024)minprocs=200 ; (min. avail process descriptors;default 200)[rpcinterface:supervisor]supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface[supervisorctl]serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket[include]files = supervisord.d/*.ini
比较关心的其实是子进程的配置文件了,默认是在这个目录下/etc/supervisord.d/*.ini
看一个node_exporter的配置
[root@test-3 supervisord.d]# cat node_exporter.ini[program:nodeexporter]command=/opt/node_exporter/node_exporterdirectory=/opt/node_exporterstdout_logfile=/opt/node_exporter/node_exporter.logautostart=trueautorestart=trueredirect_stderr=trueuser=rootstartsecs=3
部分如需要添加环境变量的,可以这样添加
environment=JAVA_HOME="/data/jdk-1.8",JAVA_BIN="/data/jdk-1.8/bin"
更多其它配置,可以到如下地址去查看:
http://supervisord.org/
♦️
命令相关
学习linux不管是那个命令吧,建议先执行 --help 查看对应的一些信息
我们更多的是对子进程的一个操作,主要是supervisorctl命令
下面是一些常用的到的指令
supervisorctl status //查看所有进程的状态supervisorctl stop redis //停止redissupervisorctl start redis //启动redissupervisorctl restart redis //重启redissupervisorctl update //配置文件修改后使用该命令加载新的配置supervisorctl reload //重新启动配置中的所有程序

也可以直接执行supervisorctl命令进入交互页面


👆点击查看更多内容👆
推荐阅读
记得星标记一下,下次更容易找到我

文章转载自大侠之运维,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




