Linux 后台进程运行常见的有nohup,比如nohub command & ,但是这样使用起来并不是很优雅。这里介绍一个后台进程管理的工具-supervisor
介绍
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
安装
supervisor 的安装很简单,我这里是Centos7,直接用pip安装,yum安装的版本可能会比较老。这里安装的版本是3.31
1 | pip install supervisor |
如果没有pip命令的要首先yum安装一下
1 | yum instal python-pip -y |
创建启动脚本
Centos7
1 | vim /etc/systemd/system/supervisord.service |
1 | # supervisord service for systemd (CentOS 7.0+) |
脚本地址:https://github.com/Supervisor/initscripts/blob/master/centos-systemd-etcs
设置开机自启动
1 | systemctl enable supervisord |
Centos6
1 | vim /etc/init.d/supervisord |
脚本参考地址:https://github.com/Supervisor/initscripts/blob/master/redhat-init-equeffelec
设置开机自启动
1 | chmod +x /etc/init.d/superviord |
创建配置文件
supervisor安装好之后默认是没有配置文件的,要通过下面这条命令生成配置文件。
1 | echo_supervisord_conf > /etc/supervisord.conf |
修改配置文件
开启web管理界面
1 | vim /etc/supervisord.conf |
开启子配置文件
1 | [include] |
启动supervisor
1 | #centos7 |
通过supervisorctl命令行登录
1 | supervisorctl |
通过web访问
举个栗子
这里我们用supervisor管理这个shell脚本
hello.sh
1 |
|
由于之前定义的supervisor子配置文件目录没有创建,我们手动创建一下
1 | mkdir /etc/supervisor.conf |
然后创建一个管理hello.sh的子配置文件
1 | cd /etc/supervisor.conf |
1 | [program:hello] |
登录supervisor更新配置并启动
1 | 添加hello |
配置文件详解
1 | [unix_http_server] |
参考: