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在运行中。

至此,所有操作进行完毕

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