linux起包脚本

#!/bin/sh
# 
# 启动 jar 运行


# 项目部署目录
projectDir=/www/java/jar/
# 项目运行 jar 名称
jarName="totolemgm-boot-2.1.4.jar"
# 脚本日志目录
logDir=/www/java/log/
# 项目部署环境
profileActive=prod

# 这里的-x 参数判断${logDir}是否存在并且是否具有可执行权限 
if [ ! -x "${logDir}" ]; then 
  mkdir -p "${logDir}" 
fi 

# 判断项目SpringBoot程序是否运行
count=$(ps -ef |grep ${jarName} |grep -v "grep" |wc -l)
if [ ${count} -lt 1 ]; then
    cd ${projectDir}
    nohup java -Xmx384m -jar ${jarName} --spring.profiles.active=${profileActive} > ${logDir}mgm_log_$(date +%Y-%m-%d) 2>&1 &
    echo "$(date '+%Y-%m-%d %H:%M:%S') 启动 ${jarName} 程序 ... ..."
else
    echo "已经存在 ${count} 个${jarName} 程序在运行"
    # 获取正在运行的程序进程 id(排除 grep 本身、awk 命令以及脚本本身)
    jarPid=$(ps x | grep ${jarName} | grep -v grep | grep -v '${scriptName}' | awk '{print $1}')
    # 停止正在运行的项目进程 
    kill -9 ${jarPid}
    output=`echo "正在关闭${jarName}程序,进程id: ${jarPid}"`
    echo ${output}
    cd ${projectDir}
    nohup java -Xmx384m -jar ${jarName} --spring.profiles.active=${profileActive} > ${logDir}mgm_log_$(date +%Y-%m-%d) 2>&1 &
    echo "$(date '+%Y-%m-%d %H:%M:%S') 重新启动 ${jarName} 程序 ... ..."
fi

你可能感兴趣的:(java)