Stack Reduce
部署

Script

常用运维脚本。

Java 独立程序启停脚本

支持命令

./myapp.sh start
./myapp.sh stop
./myapp.sh restart
./myapp.sh status

脚本内容

#!/bin/bash

# 配置部分
JAVA_CMD="/path/to/java"
JAR_FILE="/path/to/myapp.jar"
PID_FILE="/path/to/myapp.pid"
LOG_FILE="/path/to/myapp.log"

check_pid() {
  if [ -f "$PID_FILE" ]; then
    PID=$(cat "$PID_FILE")
    if [ -d "/proc/$PID" ]; then
      return 0
    else
      rm -f "$PID_FILE"
    fi
  fi
  return 1
}

start() {
  if check_pid; then
    echo "应用程序已经在运行 (PID: $(cat $PID_FILE))"
  else
    nohup $JAVA_CMD -jar $JAR_FILE > $LOG_FILE 2>&1 &
    echo $! > $PID_FILE
    echo "应用程序启动成功 (PID: $(cat $PID_FILE))"
  fi
}

stop() {
  if check_pid; then
    kill -9 $(cat $PID_FILE)
    rm -f $PID_FILE
    echo "应用程序已停止"
  else
    echo "应用程序未运行"
  fi
}

restart() {
  stop
  start
}

usage() {
  echo "用法: $0 {start|stop|restart|status}"
  exit 1
}

status() {
  if check_pid; then
    echo "应用程序正在运行 (PID: $(cat $PID_FILE))"
  else
    echo "应用程序未运行"
  fi
}

case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    restart
    ;;
  status)
    status
    ;;
  *)
    usage
    ;;
esac

本页目录