通用Java部署运行脚本


记录下jar 部署发布脚本。

#!/bin/bash
# 主类
APP_NAME="$1"
APP_MAINCLASS="jxict-digitalvillage-modules-$APP_NAME"
# 服务jar包位置和日志位置
APP_FILE_PATH="/data/app/$APP_NAME/$APP_MAINCLASS.jar"
# 进程ID文件
PID_FILE="/data/app/$APP_NAME/$APP_NAME.pid"

# 获取进程ID,如果进程不存在则返回0
getpid() {
   if [ -f "$PID_FILE" ]; then
       psid=$(cat "$PID_FILE")
   else
       psid=0
   fi
}

# 函数:检查进程是否存在
# 参数 $1:要检查的进程号
# 返回值:如果进程存在,返回 0,否则返回 1
checkPid(){
    local pid_to_check="$1"
    if ps -p "$pid_to_check" > /dev/null; then
        return 0  # 进程存在
    else
        return 1  # 进程不存在
    fi
}

start() {
   echo "Starting $APP_MAINCLASS..."
   if [ -f "$PID_FILE" ]; then
       echo "$APP_NAME is already running."
   else
       nohup java -jar "$APP_FILE_PATH" --spring.profiles.active=mobile >> "/data/app/$APP_NAME/nohup.log" 2>&1 &
       echo "$!" > "$PID_FILE"
       echo "Started $APP_NAME. PID: $!"
   fi
}

stop() {
   getpid
   if [ $psid -ne 0 ]; then
       echo "Stopping $APP_MAINCLASS..."
       kill "$psid"
       rm "$PID_FILE"
   else
       echo "$APP_NAME is not running."
   fi
}

restart() {
     getpid
   local jpid=$psid
   checkPid $jpid
   local flag=$?
   stop
   while [ $flag -ne 0 ]; do
       sleep 1
       checkPid $jpid
       flag=$?
   done
   sleep 2
   start
}

method="$2"

case "$method" in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "restart")
        restart
        ;;
    *)
        echo "Usage: $0  "
        exit 1
        ;;
esac

文章作者: ghf
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ghf !
评论
 上一篇
m1 mac上openvpn无法连接排查 m1 mac上openvpn无法连接排查
最近公司openvpn突然连不上了,最开始以为是网络调整导致了。等了几天后发现还不行,让同事在window上连接,发现并没有问题,自己用命令行连接也没问题。简单排查后,最后发现是柠檬清理导致的。只需要,把openvpn相关的服务启动打开就行
2023-10-24
下一篇 
安装MinIO 安装MinIO
安装Minio下载地址:https://minio.org.cn/download.shtml#/linux 编辑启动脚本 #!/bin/sh export MINIO_ROOT_USER=admin export MINIO_ROOT_P
2023-10-09