停止jar的sh文件名 settlement-backend-stop.sh

内部代码

SPRINGBOOT_JAR_NAME='settlement-backend.jar'
PIDS=`ps -ef | grep "$SPRINGBOOT_JAR_NAME" | grep java |awk '{print $2}'`
if [ -z "$PIDS" ]; then
  echo "警告: $SPRINGBOOT_JAR_NAME 未启动!"
  exit 1
fi
echo -e "正在停止 $SPRINGBOOT_JAR_NAME 进程[PIDS] ...\c"
for PID in $PIDS ; do
  kill $PID > /dev/null 2>&1
done
COUNT=0
while [ $COUNT -lt 1 ]; do
  echo -e "......\c"
  sleep 2
  COUNT=1
  for PID in $PIDS ; do
    PID_EXIST=`ps -f -p $PID | grep java`
    if [ -n "$PID_EXIST" ]; then
      COUNT=0
      break
    fi
  done
done
echo "$SPRINGBOOT_JAR_NAME 进程[PIDS], 已停止!"

启动jar的sh文件名 settlement-backend-start.sh

内部代码

/data/jdk1.8.0_231/bin/java -Xms5G -Xmx5G -XX:MetaspaceSize=256M -XX:+UseG1GC -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/shanghai -XX:OnOutOfMemoryError="/data/jdk1.8.0_231/bin/jstack -F %p >> ./logs/jstack-settlement-backend.log" -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./logs/settlement-backend-OOM.dump -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xloggc:./logs/settlement-backend-gc.gc  -jar /data/settlement-backend.jar > /data/logs/settl-console.log 2>&1 &

在linux上使用脚本:

# sh settlement-backend-stop.sh
# sh settlement-backend-start.sh



或者直接停止并启动的脚本:

cd /opt/workspace/im
tomcat_pid=`netstat -lntp | grep :9999 | awk '{printf $7}'|cut -d/ -f1`
[ -n "$tomcat_pid" ] && kill -9 $tomcat_pid
nohup java -jar -Dspring.profiles.active=sit  -Djava.io.tmpdir=/opt/workspace/im/tmpfile im-web-1.0.jar > /dev/null 2>&1 &