在 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在运行中。
至此,全部操做进行完毕