- 安装
yum install -y supervisor
安装完成后系统会自动创建/etc/supervisord.conf 文件 和 /etc/supervisord.d文件夹。
cat /etc/supervisord.conf 系统默认加载supervisord.d文件夹下的.ini文件
cd /etc/supervisord.d
touch xxx.ini
vim xxx.ini
'''
[program:qwe]
directory=/home/
command=python3 qwe.py
autostart=true
autorestart=true
redirect_stderr=true
'''
启动supervisord,注意stop之前的实例或杀死进程 (杀死所有supervisord 进程)
然后 supervisord
supervisorctl xxx.ini
supervisorctl status //查看所有进程的状态
supervisorctl stop xxx //停止xxx
supervisorctl start xxx //启动xxx
supervisorctl restart //重启xxx
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新启动配置中的所有程序
ubuntu
安装
sudo apt-get install supervisor
新建进程配置
安装supervsor
进程管理工具后,建议在/etc/supervisor/conf.d/
文件夹中为每一个进程创建一个进程配置。
cd /etc/supervisor/conf.d/
sudo touch test.conf
配置详解
[program:test]
command=sh /usr/local/bin/test.sh ;被监控的进程路径
numprocs=1 ; 启动一个进程
directory=/usr/local/bin/ ;执行前切换路径
autostart=true ; 随着supervisord的启动而启动
autorestart=true ; 自动重启
startretries=10 ; 启动失败时的最多重试次数
exitcodes=0 ; 正常退出代码
stopsignal=KILL ; 用来杀死进程的信号
stopwaitsecs=10 ; 发送SIGKILL前的等待时间
redirect_stderr=true ; 重定向stderr到stdout
stdout_logfile=logfile ; 指定日志文件
启动进程
supervisorctl reload
supervisorctl start test
命令详解
#启动进程
supervisorctl start xxx
#重启进程
supervisorctl restart xxx
#重启所有属于名为group的分组进程
supervisorctl stop group
#停止全部进程
supervisorctl stop all
#载入最新配置的文件
supervisorctl reload
#根据最新的配置文件,启动新配置或有改动的进程
supervisorctl update