利用 supervisor 轻松管理后台进程
《利用 supervisor 轻松管理后台进程》要点: 公司最近在做新的项目,前后端分离.前端改用node.js,后台的接口都做成了类似的微服务,比如注册一个服务,登录一个服务等等···直接打包成jar包启动,例如 java -jar xxx.jar 现在大概差不多有10多个左右的服务,今后会更多. 其实要放在后台执行用nohup 命令 在把日志重定向也可以做,nohup java -jar xxx.jar > /data/log/xxx.log 2>&1 & 但是管理起来就很麻烦了,google 了一下发型supervisor 很适合做这个事情.网上找了很多关于supervisor 的资料都不怎么完整,所以这里把笔记贴一下,方便日后自己使用 下载最新 supervisor? Centos 6.5 可以使用 yum 安装,但是版本太老了. 我这里用的是?supervisor-3.1.3 可以到 supervisor 官网下载最新安装包 http://supervisord.org/ 下载链接?http://pan.baidu.com/s/1c0yf7Te 安装? tar zxvf supervisor-3.1.3 cd?supervisor-3.1.3 python setup.py install
配置 echo_supervisord_conf ?>/etc/supervisord.conf vim /etc/init.d/supervisord #! /bin/sh # chkconfig: – 85 15 PATH=/sbin:/bin:/usr/sbin:/usr/bin PROGNAME=supervisord DAEMON=/usr/bin/$PROGNAME CONFIG=/etc/$PROGNAME.conf PIDFILE=/tmp/$PROGNAME.pid DESC=”supervisord daemon” SCRIPTNAME=/etc/init.d/$PROGNAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 start() { echo -n “Starting $DESC: $PROGNAME” $DAEMON -c $CONFIG echo “…” } stop() { echo -n “Stopping $DESC: $PROGNAME” supervisor_pid=`ps -ef | grep supervisord | grep -v grep | awk ‘{print $2}’` kill -15 $supervisor_pid echo “…” } case “$1” in start) start ;; stop) stop ;; restart) stop start ;; *) echo “Usage: $SCRIPTNAME {start|stop|restart}” >&2 exit 1 ;; esac exit 0
chmod +x /etc/init.d/supervisord chkconfig –add supervisord chkconfig supervisord on vim /etc/supervisord.conf 修改一下几行,去掉前面的注释“;” [unix_http_server] [inet_http_server] ; inet (TCP) server disabled by default [include] 我们写一个测试的程序 hello.sh vim /etc/supervisor.conf/hello.conf [program:hello]
写一个测试脚本 vim /www/sh/hello.sh #!/bin/bash chmox +x /www/sh/hello.sh
启动并测试 /etc/init.d/supervisord start 查看端口是否监听 进入控制台 supervisorctl hello RUNNING pid 12665,uptime 0:00:59
说明hello.sh 已经在后台运行. 使用浏览器访问9001端口,查看WEB界面
(编辑:ASP站长网) |