Shell--案例--03--java包启动脚本

Shell–案例–03–java包启动脚本


1、jar包

1.1、脚本

vi /root/test/app_jar.sh

内容

#!/bin/bash
# 
# jar 脚本,有启动,重启,停止功能
#
#
# jvm 参数
jvm_xms=-Xms512m

jvm_xmx=-Xmx512m

# jar 名称
jar_name=app.jar
# jar 目录
jar_dir=/root/test

# debug 参数
debug_param="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

# 进程id
pid=

# 启动
start() {
    # 获取进程id
    getpid
    # 如果进程id存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        echo "$jar_name 正在运行,进程id是 $pid"
    else 
        echo "启动:$jar_name"
        nohup java -server $jvm_xms $jvm_xmx -jar $jar_dir/$jar_name > /dev/null 2>&1 &
    fi
}

# 启动
debug() {
    # 获取进程id
    getpid
    # 如果进程id存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        echo "$jar_name 正在运行,进程id是 $pid"
    else 
        echo "启动:$jar_name"
        nohup java $debug_param -server $jvm_xms $jvm_xmx -jar $jar_dir/$jar_name > /dev/null 2>&1 &
    fi
}

# 停止
stop() {
    # 获取进程id
    getpid
    # 如果进程id存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        # 杀死进程id
        kill -KILL $pid >/dev/null 2>&1
        # 睡眠10秒,单位微秒
        usleep 100000
        echo "$jar_name 已停止"
    else
        echo "$jar_name 未运行"
    fi
}

# 重启
restart() {
    stop
    start
}

# 进程id函数,获取进程id
getpid() {
 pid=`ps -ef|grep "$jar_dir/$jar_name"|grep -v grep|awk '{print $2}'`
}

# 启动参数
case "$1" in
    start)
        echo "------------------------执行启动------------------------"
        start
        ;;
    stop)
        echo "------------------------执行停止------------------------"
        stop
        ;;
    debug)
        echo "------------------------执行debug启动------------------------"
        debug
        ;;
    restart)
        echo "------------------------执行重启------------------------"
        stop
        start
        ;;
    status)
        echo "------------------------执行查看------------------------"
        getpid
        if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
            echo "$jar_name 正在运行,进程id是 $pid"
        else
            echo "$jar_name 已停止"
        fi
        ;;
    *)
        echo $"参数提示: $0 {start|debug|stop|restart|status}"
esac













1.2、授权

chmod +x /root/test/app_jar.sh

在这里插入图片描述

1.3、测试


./app_jar.sh restart
./app_jar.sh status 
./app_jar.sh stop 
./app_jar.sh status
./app_jar.sh start

在这里插入图片描述

2、war包

#!/bin/bash
# 
# jar 脚本,有启动,重启,停止功能
#
#
# jvm 参数


jvm_xms=-Xms6144m

jvm_xmx=-Xmx6144m

 
# 应用名称
app_name=appTest

# app 目录
app_dir=/home/hd/appTest/appTest-boot

# app 上级目录
app_pre_dir=/home/hd/appTest/

# debug 参数
debug_param="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

# 进程id
pid=

# 启动
start() {
    # 获取进程id
    getpid
    # 如果进程id存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        echo "$app_name 正在运行,进程id是 $pid"
    else 
        echo "启动:$app_name" 
		cd $app_pre_dir ; nohup java $jvm_xms $jvm_xmx -Djava.awt.headless=true -cp $app_dir org.springframework.boot.loader.WarLauncher >/dev/null 2>&1 &
    fi
}

# 启动
debug() {
    # 获取进程id
    getpid
    # 如果进程id存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        echo "$app_name 正在运行,进程id是 $pid"
    else 
        echo "启动:$app_name"
		cd $app_pre_dir ; nohup java $debug_param  $jvm_xms $jvm_xmx -Djava.awt.headless=true -cp $app_dir org.springframework.boot.loader.WarLauncher >/dev/null 2>&1 &
    fi
}

# 停止
stop() {
    # 获取进程id
    getpid
    # 如果进程id存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        # 杀死进程id
        kill -KILL $pid >/dev/null 2>&1
        # 睡眠10秒,单位微秒
        usleep 100000
        echo "$app_name 已停止"
    else
        echo "$app_name 未运行"
    fi
}

# 重启
restart() {
    stop
    start
}

# 进程id函数,获取进程id
getpid() {
 pid=`ps -ef|grep "$app_dir"|grep -v grep|awk '{print $2}'`
}

# 启动参数
case "$1" in
    start)
        echo "------------------------执行启动------------------------"
        start
        ;;
    stop)
        echo "------------------------执行停止------------------------"
        stop
        ;;
    debug)
        echo "------------------------执行debug启动------------------------"
        debug
        ;;
    restart)
        echo "------------------------执行重启------------------------"
        stop
        start
        ;;
    status)
        echo "------------------------执行查看------------------------"
        getpid
        if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
            echo "$app_name 正在运行,进程id是 $pid"
        else
            echo "$app_name 已停止"
        fi
        ;;
    *)
        echo $"参数提示: $0 {start|debug|stop|restart|status}"
esac





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值