一个好用的Java服务重启脚本

#!/bin/bash

g_dir=$(pwd)
g_jar=()

function stop() {
   pid=$(ps -ef | grep java | grep "$1" | awk '{print $2}')

   if [ -n "$pid" ]; then
      if [ "$pid" -ne 0 ]; then
         echo "停止服务: $1"
         kill -9 "$pid"
      fi
   fi
}

function start() {
   if [ ! -f ${g_dir}/$1 ]; then
      echo "文件不存在: ${g_dir}/$1}"
   fi
   
   echo "启动服务: $1"
   nohup java -jar -Xms512m ${g_dir}/$1 > ${1%.*}".log" 2>&1 &
}

echo "当前目录: ${g_dir}"
echo ""

for file in $(ls $g_dir); do
  if [ -f $file ]; then
     prefix=${file##*.}
     if [ $prefix = 'jar' ]; then
         g_jar[${#g_jar[*]}]=$file
     fi
  fi
done

if [ ${#g_jar[*]} -eq 0 ]; then
   echo "当前目录下找不到jar包: ${g_dir}"
   exit 0
fi

echo "JAR包列表: "
for ((i = 0; i < ${#g_jar[*]}; i++)); do
  echo " $(($i + 1))) ""${g_jar[$i]}"
done

echo ""
read -r -p "请选择重启的服务: " index

if [ $index -gt ${#g_jar[*]} ]; then
  echo "输入有误, 不存在(${index})选项"
  exit 0
fi

echo "你选择了: ${g_jar[$index - 1]}"

stop ${g_jar[$index - 1]}
start ${g_jar[$index - 1]}
posted @   istruth  阅读(161)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示