Centos7安装Supervisor守护进程
Supervisor是什么?
Supervisor是一个Python写的进程管理工具,可以方便用于启动、重启、关闭进程。特别适合需要常驻内存的进程。
安装Supervisor
使用easy_install安装(第一种方法)
yum install python-setuptools easy_install supervisor echo_supervisord_conf > /etc/supervisord.conf
使用pip安装(第二种方法)
sudo pip install supervisor echo_supervisord_conf > /etc/supervisord.conf
相关命令
# 启动supervisord
supervisord -c /etc/supervisord.conf
supervisorctl -c /etc/supervisord.conf
# 停止supervisord
supervisorctl shutdown
# 重新载入配置
supervisorctl reload
# 查看程序状态
supervisorctl status
# 查看服务器进程
ps -ef | grep supervisord
开机自启动
# 下载配置文件(文件路径 https://github.com/Supervisor/initscripts/blob/master/centos-systemd-etcs)
wget https://raw.githubusercontent.com/Supervisor/initscripts/master/centos-systemd-etcs -O /usr/lib/systemd/system/systemd-supervisor.service
# 设置开机自启动
systemctl enable systemd-supervisor.service
# 检查是否设置成功
systemctl is-enabled systemd-supervisor.service
配置项目脚本
由于服务器中项目众多,可以包含多个Supervisor配置文件,这里有个小技巧,使用泛匹配的方式引入所有配置文件。具体方法:
vi /etc/supervisord.conf # 编辑主配置文件 在其下面引入如下代码
# 下面两行代码意思为引入有在/etc/supervisor文件夹下的conf文件
[include]
files = /etc/supervisor/*.conf
下面为一个Laravel中队列的配置例子
[program:laravel]
process_name=%(program_name)s
command=php /www/wwwroot/xxxxxx/artisan queue:work redis --queue=default --tries=3 # 表示运行的命令
autostart=true # 表示是否跟supervisor一起启动
autorestart=true # 表示程序被杀死是否重新启动
user=root
redirect_stderr=true # 表示是是否重定向错误日志
stdout_logfile=/www/wwwroot/xxxxxx/storage/logs/laravel.log # 表示输出标准日志文件
stderr_logfile=/www/wwwroot/xxxxxx/storage/logs/laravel.log # 表示输出错误日志文件