CentOS7安装Supervisor进程守护,并且创建项目

发布时间 2023-09-22 11:19:38作者: QUDE
安装Supervisor
#执行epel-release epel-release会配置Supervisor的源
sudo yum -y install epel-release

#安装Supervisor
sudo yum -y install supervisor

#通过配置文件来启动supervisor
sudo supervisord -c /etc/supervisord.conf

#启动supervisorctl
sudo supervisorctl -c /etc/supervisord.conf

#查看supervisor 版本
version

创建项目

#进入supervisord.d目录
cd /etc/supervisord.d

#新建项目的配置文件
sudo touch sok.ini

配置文件内容

#查看和编辑sok.ini配置文件
sudo vim sok.ini

#程序名称
[program:sok]
#执行指令
command=python3.8 sok.py
#程序所在目录
directory=/sok
#环境变量
environment=ASPNETCORE_ENVIRONMENT=Production
#执行进程身份
user=root
#自动启动 Supervisor启动后就拉起来
autorestart=true
#错误日志保存位置
stderr_logfile=/sok/Error.log
#日志保存位置
stdout_logfile=/sok/Out.log

配置完成后重新加载配置

#通过配置文件来启动supervisor
sudo supervisord -c /etc/supervisord.conf
主意:如果报错说明已经启动就跳过这一步

#启动supervisorctl
sudo supervisorctl -c /etc/supervisord.conf

#重新加载配置文件
reload

#查看运行的状态
status

结果如下:
supervisor> status
sok                              RUNNING   pid 1442, uptime 0:00:06

配置Supervisor开机自启

#进入system目录
cd /usr/lib/systemd/system

#编辑supervisord.service文件
sudo vim 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

可以重启CentOS然后直接访问接口测试是否开机自正常

Supervisor常用指令

# 启动所有
supervisorctl start all

# 重启所有
supervisorctl restart all

# 停止所有
supervisorctl stop all

#PS:要操作某个服务,把all换成服务名即可

#查看服务状态
supervisorctl status

本文转载自:http://www.dotlemon.top/blog/20