linux下使用supervisor监控应用程序
来源:互联网 发布:html网站源码 编辑:程序博客网 时间:2024/04/29 19:47
1 应用场景
应用程序需要24小时不间断运行。这时可使用supervisor监控应用程序的进程。当发生应用程序内部错误退出、进程被杀死等情况时,自动重启应用程序。
2 supervisor
supervisor由python写成, 简单好用。官方网站 http://supervisord.org,上面有详细的指南文档。
3 安装supervisor
1)安装 setuptools
$sudo apt-get install python-setuptools
2) 使用easy_install安装 supervisor
$sudo easy_install supervisor
安装完成后出现:
/usr/bin/supervisord --supervisor服务守护进程
/usr/bin/supervisorctl--supervisor服务控制程序
4 配置文件
以下命令可以将配置文件示例打印到控制台:
$ echo_supervisord_conf
若要生成配置文件,使用命令:
$ sudo echo_supervisord_conf > /etc/supervisord.conf
或者在当前目录生成:
$ echo_supervisord_conf > supervisord.conf
--------------------------------
Notice: 如何停止子进程
场景:如果supervisord.conf中配置的command是执行一个bash,而bash里执行java,那么当使用supervisorctl stop [programname]停止程序时,只有上层进程被停止,而java进程没有被停止。
解决办法:
在配置文件中设置:
stopasgroup=true
killasgroup=true
---------------------------------
5 配置要运行的程序
在上面生成的配置文件后,追加:
- [program:helloworld]
- command=./helloworld ;执行命令
- process_name=%(program_name)s
- autostart=true ; 程序是否随supervisor启动而启动
- autorestart=true ;程序停止时,是否自动重启
- startsecs=10
6 启动supervisor
$ supervisord -c supervisord.conf
7 使用supervisorctl管理程序
1)开启/停止某个程序
# supervisorctl [start | stop] [program名称] //在supervisord.conf中定义的
2)查看进程状态
$supervisorctl status
8 通过web方式查看状态
配置文件中配置:
[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
那么可以从浏览器通过访问 localhost:9001来查看进程状态
9 添加supervisord为Linux系统服务,开机自动启动
2)启动脚本 supervisord.sh (centos/redhat)
- #!/bin/sh
- #
- # /etc/rc.d/init.d/supervisord
- #
- # Supervisor is a client/server system that
- # allows its users to monitor and control a
- # number of processes on UNIX-like operating
- # systems.
- #
- # chkconfig: - 64 36
- # description: Supervisor Server
- # processname: supervisord
- # Source init functions
- . /etc/rc.d/init.d/functions
- prog="supervisord"
- prog_bin="/usr/local/bin/supervisord"
- PIDFILE="/tmp/supervisord.pid"
- start()
- {
- echo -n $"Starting $prog: "
- # Source init functions
- . /etc/rc.d/init.d/functions
- prog="supervisord"
- prog_bin="/usr/local/bin/supervisord"
- PIDFILE="/tmp/supervisord.pid"start()
- {
- echo -n $"Starting $prog: "
- daemon $prog_bin --pidfile $PIDFILE
- [ -f $PIDFILE ] && success $"$prog startup" || failure $"$prog startup"
- echo
- }
- stop()
- {
- echo -n $"Shutting down $prog: "
- [ -f $PIDFILE ] && killproc $prog || success $"$prog shutdown"
- echo
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status $prog
- ;;
- restart)
- stop
- start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- ;;
- esac
3)添加为系统服务
# mv supervisord.sh /etc/init.d/supervisord
# chkconfig --add supervisord
# chkconfig --level 345 supervisord on
4) 开启/停止服务
# service supervisord [start | stop]
转自:http://blog.csdn.net/heyjackie/article/details/12995187
参考材料:
http://supervisord.org/running.html
http://serverfault.com/questions/96499/how-to-automatically-start-supervisord-on-linux-ubuntu
0 0
- linux下使用supervisor监控应用程序
- linux下使用supervisor监控应用程序
- linux下使用supervisor监控应用程序
- linux下使用supervisor
- CentOS下使用supervisor监控应用进程
- linux使用supervisor监控fluentd进程
- Linux进程监控工具Supervisor的使用
- 使用supervisor监控进程
- 使用supervisor监控进程
- Express4 程序下的监控模块使用 nodemon 和 Supervisor
- linux 下使用supervisor管理源码启动的openerp
- Linux进程监控服务Supervisor快速入门
- Linux系统下的进程监控工具Supervisor的基本使用方法
- 使用Supervisor管理Linux进程
- linux使用 supervisor 管理进程
- 【Linux】Supervisor快速使用教程
- 使用Supervisor管理Linux进程
- linux安装、配置、使用supervisor
- Android 对Layout_weight属性完全解析以及使用ListView来实现表格
- android权限解读
- REST api
- C++中必须要知道的知识
- C++之多态
- linux下使用supervisor监控应用程序
- Java 理论与实践: 处理 InterruptedException
- git 学习教程
- 程序使用内存缓存(MemoryCache)
- 【Android开发】布局管理器-相对布局
- JDBC批量Insert深度优化(有事务)
- java AbstractQueuedSynchronizer的实现分析(共享锁)
- 开源的PaaS方案:在OpenStack上部署CloudFoundry (二)部署OpenStack
- ios网络通信