部署
yum -y install epel-release
yum -y install supervisor
查看配置
systemctl cat supervisord
修改配置 #主要是内存 文件打开数
[root@bogon ~]# sed -i '/forking/a LimitNOFILE=65536' /usr/lib/systemd/system/supervisord.service && sed -i '/forking/a LimitNPROC=65536' /usr/lib/systemd/system/supervisord.service && sed -i '/forking/a LimitMEMLOCK=infinity' /usr/lib/systemd/system/supervisord.service
启动
[root@bogon ~]# systemctl daemon-reload [root@bogon ~]# systemctl enable supervisord Created symlink from /etc/systemd/system/multi-user.target.wants/supervisord.service to /usr/lib/systemd/system/supervisord.service. [root@bogon ~]# systemctl start supervisord
管理服务
#项目名 [program:blog] #脚本目录 directory=/opt/bin #脚本执行命令 command=/usr/bin/python /opt/bin/test.py #supervisor启动的时候是否随着同时启动,默认True autostart=true #当程序exit的时候,这个program不会自动重启,默认unexpected,设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的 autorestart=false #这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1 startsecs=1 #脚本运行的用户身份 user = test #日志输出 stderr_logfile=/tmp/blog_stderr.log stdout_logfile=/tmp/blog_stdout.log #把stderr重定向到stdout,默认 false redirect_stderr = true #stdout日志文件大小,默认 50MB stdout_logfile_maxbytes = 20M #stdout日志文件备份数 stdout_logfile_backups = 20
Supervisord 管理
- open 链接一个远程 Supervisord 服务
- shutdown 关闭某个原创的 Supervisord 服务
- pid 获取 Supervisord 服务或托管服务的进程号
- signal 对 Supervisord 服务或者托管服务发送信号
- add 添加托管的服务进程
- avail 展示所有托管服务进程信息
- maintail 查看 Supervisord 进程的标准输出信息