在 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