MENU

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 # 表示输出错误日志文件
标签: Linux
返回文章列表 文章二维码 打赏
本页链接的二维码
打赏二维码