使用yum安装
yum -y install supervisor
启动supervisor
supervisord -c /etc/supervisord.conf
or
supervisorctl -c /etc/supervisord.conf
查看supervisor 版本
supervisorctl version
查看supervisor 状态
supervisorctl status
新建进程配置文件(添加要守护的进程)
processName为自定义的进程配置文件名称
touch /etc/supervisord.d/processName.ini
编辑进程配置文件
vi /etc/supervisord.d/processName.ini
配置文件参考
#配置程序名称
[program:DemoProcess]
#运行程序的命令(示例.netCore程序启动)
command=dotnet DemoProcess.dll
#命令执行的目录
directory=/var/www
#进程环境变量
environment=ASPNETCORE_ENVIRONMENT=Production
#进程执行的用户身份
user=root
#进程停止信号,可以为TERM, HUP, INT, QUIT, KILL, USR1, or USR2等信号默认为TERM 。当用设定的信号去干掉进程,退出码会被认为是expected,非必须设置
stopsignal=INT
#如果是true的话,子进程将在supervisord启动后被自动启动,默认就是true,非必须设置
autostart=true
#这个是设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,只有当进程的退出码不在下面的exitcodes里面定义的退出码的时候,才会被自动重启。当为true的时候,只要子进程挂掉,将会被无条件的重启
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了,默认值为1 。非必须设置
startsecs=1
#错误日志文件
stderr_logfile=/var/log/DemoProcess.err.log
#输出日志文件
stdout_logfile=/var/log/DemoProcess.out.log
重新启动
supervisorctl reload
查看进程是否运行
ps -aux | grep "DemoProcess"
配置Supervisor开机自启动
配置Supervisor开机自启动参数
vi /usr/lib/systemd/system/supervisord.service
开机自启动参数内容
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42
[Install]
WantedBy=multi-user.target
开机自启动
systemctl enable supervisord
验证是否开机自启动
systemctl is-enabled supervisord
启动所有守护进程
要操作某个进程,把all换成进程名即可
supervisorctl start all
重启所有守护进程
supervisorctl restart all
停止所有守护进程
supervisorctl stop all
编辑Supervisor配置文件
vi /etc/supervisord.conf
保存Supervisor配置文件
supervisord -c /etc/supervisord.conf
评论区