Java 项目发布使用脚本

示例用法:
同运行jar包放于同一级目录,执行如下命令

sh [脚本名字]  restart APP_NAME.jar

 

 

复制代码
#!/bin/sh

# sh start.sh start APP_NAME.jar
# sh start.sh start -Heap 1024M -MetaspaceSize 256M APP_NAME.jar
# sh start.sh stop APP_NAME.jar

# SERVER_HOME="$( cd "$( dirname "$0"  )" && pwd  )"
APP_NAME=${@: -1}

#使用说明,用来提示输入参数  
help() {
    echo "Usage: start.sh {start|stop|kills|restart|status|help} APP_NAME.jar" >&2
    echo "Examples:"
    echo "  sh start.sh start APP_NAME.jar"
    echo "  sh start.sh kills APP_NAME.jar"
    echo "  sh start.sh stop APP_NAME.jar"
    # echo "  sh start.sh start -Heap 1024M -MetaspaceSize 256M APP_NAME.jar"
}


#检查程序是否在运行  
is_exist() {
    # pid=`ps -ef | grep ${SERVER_HOME} | grep ${APP_NAME} | grep -v grep | awk '{print $2}' `
    pid=`ps -ef | grep ${APP_NAME}|grep -v $0 | grep -v grep | awk '{print $2}' `
    #如果不存在返回1,存在返回0  
    if [ -z "${pid}" ]; then
      return 1
    else
      return 0
    fi
}

#启动方法  
start() {
   is_exist
   if [ $? -eq "0" ]; then
      echo "${APP_NAME} is already running. pid=${pid} ."  
   else
      echo "${APP_NAME} running..."
      nohup java -jar ${APP_NAME} --spring.profiles.active=prod > ${APP_NAME}.out 2>&1 &
   fi
}

#停止方法  
stop() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is stopping..."
     kill -15 ${pid}
   else
     echo "${APP_NAME} is not running"  
   fi
}

#杀死进程
kills() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is stopping..."
     kill -9 ${pid}
   else
     echo "${APP_NAME} is not running"  
   fi
}

#输出运行状态  
status() {
   is_exist
   if [ $? -eq "0" ]; then
     echo "${APP_NAME} is running. Pid is ${pid}"  
   else
     echo "${APP_NAME} is not running."  
   fi
}

#根据输入参数,选择执行对应方法,不输入则执行使用说明  
case "$1" in
   "start")
     start $@;
     ;;
   "kills")
     kills $@;
     ;;
   "stop")
     stop $@;
     ;;
   "status")
     status $@;
     ;;
   "restart")
     kills $@;
     start $@;
     ;;
   *)
     help
     ;;
esac
复制代码

 

posted @   abelkeith  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示