jay/ liunx启动jar包脚本 2023-01-09 15:17
liunx启动jar包脚本
Edit Delete Raw Download
#!/bin/bash
#设置语言
export LANG="zh_CN.gbk"
#项目端口
PORT=8888
#项目包名
PROJECT_NAME="test.jar"
#项目包地址
PROJECT_JAR_ADDRESS="/package/jar/test"
#日志名(标准输出)
LOG_NAME="/package/logs/test/test-logs-%Y-%m-%d.log"
#错误日志
ERROR_LOG_NAME="/package/logs/test/test-logs-error-%Y-%m-%d.log"

function killproject()
{
#多个项目jar包名一致了,所以并没有用 ps -ef | grep jar包名 来查进程id,而是通过端口号来查的
  project_pid=$(netstat -lnp | grep ${PORT}|awk '{print $7}'|cut -d/ -f1)
  if [  $project_pid > 0 ];then
        echo "test服务已经启动了,开始关闭test服务,项目pid为: $project_pid "
        kill -9 $(netstat -lnp | grep ${PORT} |awk '{print $7}'|cut -d/ -f1)
        echo '项目关闭成功,开始重启项目。。。'
  else
        echo "项目未启动,直接启动" 
  fi
}
function start_project()
{
        source /etc/profile
        echo '正在启动test服务。。。'
        cd ${PROJECT_JAR_ADDRESS}
        nohup java -server -Xms256m -Xmx300m -XX:-UseGCOverheadLimit -Dfile.encoding=utf-8 -jar ${PROJECT_NAME} | /usr/sbin/cronolog ${LOG_NAME}  &
        #下面是自定义配置文件
        #nohup java -server -Xms512m -Xmx512m -XX:-UseGCOverheadLimit -Dfile.encoding=utf-8 -Dspring.profiles.active=dev -jar ${PROJECT_NAME} >/dev/null 2>&1 &

}
killproject
start_project
i=0;
while true ;do
  i=0;
  check_pid=$(netstat -lnp | grep ${PORT}|awk '{print $7}'|cut -d/ -f1)
  if [ $check_pid  > 0 ];then
        echo "启动test服务成功, pid = : $check_pid  "
        break;
  else
        if [ $i -le 10 ];then
                echo "test服务正在启动中。。。"
                let i+=1;
                sleep 5s;
        else
                echo "启动test服务失败"
                break;
        fi
  fi
done