在 web 應用部署到線上後,須要保證應用一直處於運行狀態,在遇到程序異常、報錯等狀況,致使 web 應用終止時,須要保證程序能夠馬上重啓,繼續提供服務。java
因此,就須要一個工具,時刻監控 web 應用的運行狀況,管理該進程。python
Supervisor 就是解決這種需求的工具,能夠保證程序崩潰後,從新把程序啓動起來等功能。git
Supervisor 是一個用 Python 寫的進程管理工具,能夠很方便的用來在 UNIX-like 系統(不支持 Windows)下啓動、重啓(自動重啓程序)、關閉進程(不單單是 Python 進程)。github
# yum install python-setuptools
# easy_install pip
# pip install supervisor -- 或者-- easy_install supervisor
# mkdir /etc/supervisor/
安裝完成以後,在/etc/supervisor目錄下生成配置文件
# echo_supervisord_conf>/etc/supervisor/supervisord.conf
1 [include] 2 files = /etc/supervisor/conf.d/*.ini
conf.d文件夾中的app_admin.ini配置文件以下web
1 [root@centos]# cat appadmin.ini 2 3 [program:appadmin] 4 process_name=%(program_name)s_%(process_num)02d 5 command=nohup /data/appadmin/app_admin 6 directory=/data/appadmin ##程序的目錄地址最好要添加,要否則會報錯,找不到路徑 7 autostart=true 8 autorestart=true 9 user=root 10 numprocs=1 11 redirect_stderr=true 12 stdout_logfile=/etc/supervisor/logs/appadmin.log #日誌文件
一切準備完畢後 執行centos
supervisord -c /etc/supervisor/supervisord.confbash
啓動supervisor,便可完成程序的持續運行!服務器
運行 supervisorctl命令便可查看程序的運行狀態app
1 [root@appadmin conf.d]# supervisorctl 2 appadmin:appadmin_00 RUNNING pid 2375, uptime 0:26:40 3 supervisor>
一些supervisor的經常使用命令工具
1 進入supervisor 命令--> #supervisorctl 2 查看命令 --> #help 3 重載項目 --> #reload 4 查看狀態 --> #status
重啓服務器後,發現supervisor開機啓動,因而只好手動添加腳本 實現開機啓動
編輯sh文件並給予權限
1 [root@centos]# vi /etc/rc.d/sh/appadmin.sh 2 #!/bin/bash 3 # 開機啓動supervisor 4 supervisord -c /etc/supervisor/supervisord.conf 5 chmod +x /etc/rc.d/sh/appadmin.sh
編輯/etc/rc.d/rc.local 加入開機啓動
1 [root@appadmin conf.d]# vi /etc/rc.d/rc.local 2 #!/bin/bash 3 touch /var/lock/subsys/local 4 #開機啓動supervisor腳本 5 /etc/rc.d/sh/appadmin.sh 6 7 chmod +x /etc/rc.d/rc.local
重啓服務器後,便可看到已經有 app_admin在運行中。
至此,全部操做進行完畢