CentOS安装配置Supervisor

Supervisor简介

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

更多参考Supervisor官网Supervisor使用详解

Supervisor安装

本文中,在CentOS7系统上安装配置Supervisor。

1、安装

1
2
3
4
5
6
# 方法一
yum install epel-release
yum install supervisor
# 方法二
yum install python-pip
pip install supervisor

2、创建sock

1
2
touch /tmp/supervisor.sock
chmod 777 /tmp/supervisor.sock

3、开机启动
systemctl enable supervisord

4、生成配置文件

1
2
mkdir -p /etc/supervisor/
echo_supervisord_conf > /etc/supervisord.conf

5、修改配置文件,vim /etc/supervisord.conf,添加:

1
2
[include]
files = /etc/supervisor/*.conf

6、运行

1
2
3
systemctl start supervisord
# or
supervisor -c /etc/supervisord.conf

常用命令

1
2
3
4
5
6
# 重启supervisor
systemctl retart supervisord
# 重启被管理的服务
supervisorctl -c /etc/supervisord.conf restart service_name
# 查看被管理的服务状态
supervisorctl status

Supervisor安装2.0

参考《CentOS安装配置pyenv》,安装好python2.7.13。

1、新建supervisor虚拟环境
pyenv virtualenv 2.7.13 supervisor

2、激活虚拟环境
source /root/.pyenv/versions/2.7.13/envs/supervisor/bin/activate supervisor
或者source activate supervisor

3、安装supervisor
yum install supervisor
pip install supervisor

4、生成配置文件

1
2
mkdir -p /etc/supervisor/
echo_supervisord_conf > /etc/supervisord.conf

5、修改配置文件
vim /etc/supervisord.conf,添加:

1
2
[include]
files = /etc/supervisor/*.conf

6、运行
/root/.pyenv/versions/2.7.13/envs/supervisor/bin/supervisord -c /etc/supervisord.conf

7、编辑supervisord.service
vi /usr/lib/systemd/system/supervisord.service,修改为:

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target

[Service]
Type=forking
ExecStart=/root/.pyenv/versions/2.7.13/envs/supervisor/bin/supervisord -c /etc/supervisord.conf
ExecReload=/root/.pyenv/versions/2.7.13/envs/supervisor/bin/supervisorctl reload
ExecStop=/root/.pyenv/versions/2.7.13/envs/supervisor/bin/supervisorctl shutdown

[Install]
WantedBy=multi-user.target

8、重启supervisor

1
2
3
ps aux | grep supervisord
systemctl stop supervisord
systemctl start supervisord

9、开机启动
systemctl enable supervisord

Supervisor实战

管理tomcat

参考《CentOS7设置tomcat开机自启动》

管理Jupyter

参考《CentOS安装配置Jupyter》

管理Django

参考Django部署到线上(修改版)

0%