Supervisor安装

简介

Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在UNIX-like系统(不支持 Windows)下启动、重启、关闭进程。

安装

环境

centos 7

安装

安装supervisor

#!/bin/bash
install_supervisor()
{
    if [ `command -v supervisord` ];then
        return
    fi
    mkdir -p /var/logs/supervisord
    yum install supervisor -y
    sed -i 's/*.ini/*.conf/g' /etc/supervisord.conf
    service supervisord restart
    echo "/usr/bin/supervisord" >> /etc/rc.local
    chmod +x /etc/rc.local
    mkdir -p /etc/supervisor
}

install_supervisor

/etc/supervisor: 存放被supervisor管理的项目启动脚本

操作脚本

echo '[program:commercial-saas]
# 脚本目录
directory=/opt/messi/%(program_name)s/bin/   
# 脚本执行命令
command=/opt/messi/%(program_name)s/bin/operate.sh restart
;numprocs=1
;process_name=%(program_name)s
user=root
autorestart=true
startsecs=30
killasgroup=true
stopasgroup=true
redirect_stderr=true
stdout_logfile = /var/logs/supervisord/%(program_name)s.log
loglevel=info' > /etc/supervisor/commercial-saas.conf

supervisorctl update

启动脚本

#!/bin/bash

# path of jar
BASE_PATH="/opt/bosco/commercial-saas"
# app name
APP_NAME="commercial-saas"
# jar name
JAR_NAME=$APP_NAME.jar
# app name
LOG_DIR=/var/logs/$APP_NAME


# jvm
JAVA_OPTS="-Xms1g -Xmx1g -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:MaxGCPauseMillis=200"

JAVA_CMD="java  $JAVA_OPTS"
JAVA_CMD=$JAVA_CMD" -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR/$APP_NAME.heaperr.log.`date "+%Y%m%d%H%M%S"`  -Xloggc:$LOG_DIR/$APP_NAME.gc.log.`date "+%Y%m%d%H%M%S"`"
JAVA_CMD=$JAVA_CMD" -jar $BASE_PATH/$JAR_NAME "

# stop method
stop(){
  app_pid=`ps -ef | grep java | grep $APP_NAME | awk '{print $2}'`
  if [[ $app_pid ]]; then
   	kill -9 $app_pid
    echo "$APP_NAME was stopped"
  else
    echo "$APP_NAME has been already stopped"
  fi
}

# start method
start(){
  echo $JAVA_CMD
  $JAVA_CMD
  echo "$APP_NAME was started"
}


restart(){
  stop
  start
}


case "$1" in

    start)
            start
    ;;
    stop)
            stop
    ;;
    restart)
            restart
    ;;
    *)
            echo "available operations: [start|stop|restart]"
            exit 1
    ;;
esac


# start method
start(){
  java $JAVA_OPTS -jar $BASE_PATH/$JAR_NAME
  echo "$APP_NAME was started" 
}


restart(){
  stop
  start
}


case "$1" in

    start)
            start
    ;;
    stop)
            stop
    ;;
    restart)
            restart
    ;;
    *)
            echo "available operations: [start|stop|restart]"
            exit 1
    ;;
esac

备注

如果supervisor启动失败,可能是没有设置java 软连接

ln -s /opt/java/jdk1.8.0_301/bin/java /usr/bin/java
ln -s /opt/java/jdk1.8.0_301/bin/javac /usr/bin/javac
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值