Supervisord进程管理工具

简介

Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程
Supervisor 是一个 C/S 模型的程序,supervisord 是 server 端,supervisorctl 是 client 端

命令

安装

  • pip安装
    1
    pip install supervisor
  • yum安装
    1
    yum install supervisor
  • apt-get安装
    1
    apt-get install supervisor

指定配置文件

  • centos默认的配置文件
    1
    supervisord -c /etc/supervisord.conf
  • 也可以自己新建配置文件然后指定
    1
    supervisord -c /home/supervisord.conf

启动

启动所有

1
supervisorctl start all 

启动指定服务(例如:tomcat)

1
supervisorctl start tomcat 
1
systemctl start supervisord.service

重启

重启指定服务(例如:tomcat)

1
supervisorctl restart tomcat
1
systemctl restart supervisord.service

查看

1
supervisorctl status

关闭

关闭指定服务(丽日tomcat)

1
supervisorctl stop tomcat

关闭所有

1
supervisorctl stop all

配置

服务配置

1
2
3
4
5
6
7
8
[program:tomcat]
directory=/data/task/tomcat
command=python3 tomcat.py
autostart=true
autorestart=true
user=root
stdout_logfile=/data/logs/tomcat.out.log
stderr_logfile=/data/logs/tomcat.err.log

踩坑

暂时无法解决的问题

error: <class ‘socket.error’>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 224
unix:///var/tmp/supervisor.sock refused connection

  • supervisorctl 命令无论如何都有这个错误
  • 你可以选择放弃使用supervisorctl 命令 ,暂时使用 systemctl 进行操作,例如:

    systemctl restart supervisord.service

Author: suce
Link: https://haoubox.cn/2021/07/22/Supervisord进程管理工具/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.