wangbin
  • wangbin
  • 2017-04-20
  • IT

imba的linux命令工具:supervisor

一. 简介

运行tomcat一直使用startup.sh脚本启动,以前经常出现无故停止的情况,导致运行的jsp服务无法访问。虽然后来优化了tomcat的配置,已经很长时间没有出问题了,但还是不保险呀。偶然知道了linux有个后台进程管理利器,试了下果然很爽,它就是supervisor。

supervisor能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

二. 安装

yum install -y python-setuptools

easy_install supervisor

//生成conf文件
echo_supervisord_conf > /etc/supervisord.conf

三.supervisord.conf

2018.4.16更新:默认配置,supervisor会将运行文件放到/tmp文件夹下,/tmp文件有时会被清空,清空后再执行supervisor命令会因为找不到之前的文件而报错。解决方法是将配置文件中tmp改为/var/run或/var/log,修改点:

[unix_http_server]
file=/var/run/supervisor.sock;

[supervisord]
logfile=/var/log/supervisord.log;
pidfile=/var/run/supervisord.pid;

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock;

end

将tomcat做成后台daemon,只需要在conf文件的最后增加如下配置:

[program:tomcat]
command=/usr/local/tomcat7/bin/catalina.sh run
environment=JAVA_HOME="/usr/java/jdk1.8.0_73/",JAVA_BIN="/usr/java/jdk1.8.0_73/bin"
directory=/usr/local/tomcat7
user=root
autostart=true
autorestart=true
startsecs=5
startretries=3
stderr_logfile=/tmp/tomcat-err.log
stdout_logfile=/tmp/tomcat.log

php的

[program:php-fpm]
command=php-fpm
user=root
autostart=true
autorestart=true
startsecs=5
startretries=3
stderr_logfile=/tmp/php-fpm-err.log
stdout_logfile=/tmp/php-fpm.log 

四.命令

启动命令是supervisord

//启动supervisord
supervisord -c /etc/supervisord.conf 

管理命令是supervisorctl

//查看状态
supervisorctl status 

//重新加载
supervisorctl reload

//启动tomcat服务
supervisorctl start tomcat

//暂停tomcat服务
supervisorctl stop tomcat

//暂停所有服务
supervisorctl stop all

五.结尾

总的来说真是imba的命令,十分牛逼。