Linux系統下 Supervisor 安裝搭建 php 文件守護進程設置

在 web 應用部署到線上後,需要保證應用一直處於運行狀態,在遇到程序異常、報錯等情況,導致 web 應用終止時,需要保證程序可以立刻重啓,繼續提供服務。

所以,就需要一個工具,時刻監控 web 應用的運行情況,管理該進程。

Supervisor 就是解決這種需求的工具,可以保證程序崩潰後,重新把程序啓動起來等功能。

Supervisor 是一個用 Python 寫的進程管理工具,可以很方便的用來在 UNIX-like 系統(不支持 Windows)下啓動、重啓(自動重啓程序)、關閉進程(不僅僅是 Python 進程)。

一、 安裝supervisor

# 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
 
如果需要卸載supervisor 執行 #  pip uninstall supervisor
 
修改supervisor配置文件: vi /etc/supervisor/supervisord.conf
把末尾的include去掉;添加配置文件
1 [include]
2 files = /etc/supervisor/conf.d/*.ini

conf.d文件夾中的app_admin.ini配置文件如下

 1 [root@centos]# cat appadmin.ini 

 2 [program:appadmin]
 3 process_name=%(program_name)s_%(process_num)02d
 4 command=nohup /alidata/server/php-5.5.7/bin/php /alidata/www/maowang/shopapi/index.php cron_redis_queue Jst_Storehouse_queueapp_admin
 5 directory=/alidata/www/maowang/shopapi/application/controllers     ##程序的目錄地址最好要添加,要不然會報錯,找不到路徑
 6 autostart=true
 7 autorestart=true
 8 user=root
9 numprocs=1
10 redirect_stderr=true
11 stdout_logfile=/etc/supervisor/logs/appadmin.log  #日誌文件

一切準備完畢後 執行

supervisord -c /etc/supervisor/supervisord.conf

啓動supervisor,即可完成程序的持續運行!

運行 supervisorctl命令即可查看程序的運行狀態

運行 supervisorctl status 命令也可查看程序的運行狀態

1 [root@iZ2zeh4l6rycnkgmzozbzsZ redis]# supervisorctl status
2 jst_push:jst_push_00             RUNNING   pid 15332, uptime 0:09:44

一些supervisor的常用命令

1 進入supervisor 命令-->  #supervisorctl
2 查看命令           -->  #help
3 重載項目           -->  #reload
4 查看狀態           -->  #status

 

二、設置supervisor開機自起:

supervisor 設置開機啓動的前提是,其他服務也要開機啓動例如: php、mysql,不然啓動會失敗

重啓服務器後,發現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在運行中。

至此,所有操作進行完畢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章