linux服务器启动jar包脚本

#!/bin/sh
############################
#  服务发布脚本-JackieChan  #
############################
OPT_TYPE=$1
echo "参数 $1=$OPT_TYPE" 
PROJECT_NAME=$2
JAR_PID=
echo "参数 $2=$PROJECT_NAME"
BASE_PROJECT_NAME=${PROJECT_NAME%.*}
# 使用说明
usage() {
    echo '****************************************************************'
    echo "Usage: sh otc_release.sh [start|stop|restart|status] [file_name]"
    echo '****************************************************************'
    exit 1
}
# 检查
check(){
    if [  -n "$PROJECT_NAME" ]; then 
        CHECK_PID=`ps -ef|grep java|grep "$PROJECT_NAME"|grep -v grep|grep -v ps|grep -v kill|awk '{print $2}'`
        if [ ! "$CHECK_PID" ]; then
            printf "$PROJECT_NAME 服务没有启动 "
        else
            printf "$PROJECT_NAME 服务进程号为:$CHECK_PID"
        fi
    else
        printf "PROJECT_NAME参数为空"
        exit 1
    fi
    JAR_PID=$CHECK_PID
}
# 启动
start(){
    echo -e "********************$PROJECT_NAME start******************\n"
    check
    if [ -n "$JAR_PID" ]; then
        echo -e "$PROJECT_NAME 正在运行...\n"
    else
        echo -e "$PROJECT_NAME 停止运行...\n"
        nohup java -jar -Xms4096M  -Xmx4096M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./$BASE_PROJECT_NAME.hprof $PROJECT_NAME --spring.profiles.active=uat  >/dev/null 2>&1 &
        echo -e "$PROJECT_NAME 启动成功!!!\n"
        sleep 5
    fi
    echo -e "********************$PROJECT_NAME start******************\n"
}
# 状态
status(){
    echo -e "********************$PROJECT_NAME status******************\n"
    check
    echo -e "********************$PROJECT_NAME status*******************\n"
}
# 重启
restart(){
    echo -e "********************$PROJECT_NAME restart******************\n"
    stop
    start
    echo -e "********************$PROJECT_NAME restart******************\n"
}
# 停止
stop(){
    echo -e "********************$PROJECT_NAME stop*********************\n"
    echo -e "检查$PROJECT_NAME是否启动:\n"
    check
    echo -e "停止 $PROJECT_NAME 服务,进程号为:[$JAR_PID]....."
    if [  -n "$JAR_PID" ]; then
        echo -e "$PROJECT_NAME 正在运行...\n"
        kill -9 $JAR_PID
        sleep 5
        echo -e '检查服务进程号:\n'
        check
    else
        echo -e "服务 $PROJECT_NAME 已经停止\n"
    fi
    
    echo -e "********************$PROJECT_NAME stop******************\n"
}
case "$1" in
    "start")
        start
    ;;
    "stop")
        stop
    ;;
    "status")
        status
    ;;
    "restart")
        restart
    ;;
    *)
        usage
    ;;
esac

ps -ef|grep
  1. ps 命令的作用是显示进程信息的

  2. | 符号,是个管道符号,表示ps 和 grep 命令同时执行;

  3. grep 命令是查找(Global Regular Expression
    Print),能使用正则表达式搜索文本,然后把匹配的行显示出来

  4. grep -v 命令排除输出

  5. JVM 调优

    • -Xms4096m -Xmx4096m
      设置heap大小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值