标签:应用程序 管理工具 command 配置文件 启动命令
Supervisor是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
提供以下两种安装方法:
# pip install supervisor
# tar zxvf supervisor-3.1.3.tar.gz
# cd supervisor
# python setup.py install
生成配置文件
# echosupervisordconf > /etc/supervisord.conf
更改配置文件,这里以tomcat,ismsrvdebug为例
# vim /etc/supervisord.conf
# program配置
[program:tomcat]
directory = /opt/tomcatapp/bin ; 程序的启动目录
command = sh startup.sh ; 启动命令,可看出与手动在命令行启动的命令是一样的
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 10 ; 启动10秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
redirectstderr = true ; 把 stderr 重定向到 stdout,默认 false
stdoutlogfilemaxbytes = 20MB ; stdout 日志文件大小,默认 20MB
stdoutlogfilebackups = 20 ; stdout 日志文件备份数
stdoutlogfile = /opt/supervisor-3.1.3/super.log ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
;environment = PYTHONPATH=$PYTHONPATH:/opt/mypy
更改tomcat配置
使用Supervisord监控管理的进程必须以nodaemon启动,即不能为后台守护进程。而tomcat的startup.sh脚本是daemon方式的,所以需要更改配置文件。
# vim /opt/tomcat_app/bin/startup.sh
(将start改为run)
exec "$PRGDIR"/"$EXECUTABLE" run "$@"
# supervisord -c /etc/supervisord.conf 启动Supervisor
# supervisorctl status 查看状态
# supervisorctl reload 重新加载配置文件
# supervisorctl start tomcat 启动项目
# supervisorctl stop tomcat 关闭项目
# supervisorctl restart tomcat 重启项目
# ps -ef | grep tomcat 查看,未启动tomcat
# 启动Supervisor # ps -ef | grep tomcat Supervisor启动的时候也会启动tomcat
# 模拟 kill掉tomcat进程。
# ps -ef | grep tomcat 查看会发现tomcat被自动拉起,进程号改变了
可以把所有配置项都写到 supervisord.conf 文件里,但并不推荐这样做,而是通过 include 的方式把不同的程序(组)写到不同的配置文件里。我们新建一个目录 /etc/supervisor/ 用于存放这些配置文件。
# vim /etc/supervisord.conf
[include]
files = /etc/supervisor/*.conf
创建配置文件管理program。
一份配置文件至少需要一个 [program:x] 部分的配置,来告诉 supervisord 需要管理那个进程。
标签:应用程序 管理工具 command 配置文件 启动命令
原文地址:http://zhouxinyu1991.blog.51cto.com/6095086/1791076