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的命令,十分牛逼。