部署

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

添加服务

 

cd  /etc/supervisord.d
vim test.ini #这里简单举例,test.sh 为一个循环脚本模拟进程
#项目名
[program:test]
#脚本目录
directory=/root/
#脚本执行命令
command=sh test.sh

 

重启服务   systemctl restart supervisord

 

Supervisord 管理

  1. open 链接一个远程 Supervisord 服务
  2. shutdown 关闭某个原创的 Supervisord 服务
  3. pid 获取 Supervisord 服务或托管服务的进程号
  4. signal 对 Supervisord 服务或者托管服务发送信号
  5. add 添加托管的服务进程
  6. avail 展示所有托管服务进程信息
  7. maintail 查看 Supervisord 进程的标准输出信息
posted on 2022-10-09 13:49  属于我的梦,明明还在  阅读(89)  评论(0)    收藏  举报