在 Linux 中运行后台进程运行有很多方法,例如 nohup,screen 等。但如果想要可靠地在后台运行一个服务程序,就需要把它做成 daemon,最好还能监控进程状态,在意外结束时能自动重启。
supervisor 就是用 Python 开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
一、安装
以 CentOS 为例。
先安装 easy-install
yum install python-setuptools
然后用 easy-install 安装 supervisor
easy-install supervisor
二、生成配置文件
刚安装好默认是没有配置文件的,使用命令在 /etc 目录生成一个配置文件:
echo_supervisord_conf > /etc/supervisord.conf
三、编写应用程序的配置项
supervisor 通过每个应用程序的配置项管理进程。形如:
[program:app]
command=java -jar /usr/www/backend-0.0.1-SNAPSHOT.jar
autorestart=unexpected
autostart=true
user=root
startsecs=1
默认情况下所有应用程序的配置项是集中写在 supervisord.conf 里的,可以通过自定义配置文件目录为每个应用程序单独设置一个配置文件。打开 supervisord.conf,将最下面的 include 前面的 ; 去掉。
在 files 后面修改为自己想要放置配置文件的目录,配置文件一般都是 .ini 格式的文件,这样目录里面的文件就都能被 supervisor 读取到了。
每个应用程序单独写一个 ini 文件:
四、一些基本命令
1.启动 supervisor
supervisord
2.启动一个应用程序
supervisorctl start app
3.停止一个应用程序
supervisorctl stop app
4.查看应用程序的状态
supervisorctl status
5.重启 supervisor(每次添加新的配置文件都要重启才能生效)
supervisorctl reload
6.重启某个应用程序
supervisorctl restart app