#!/bin/sh APP_NAME=wx_lvdao.jar APP_PORT=8015 APP_EVN=$2 #执行环境 APP_ORDER=$1 #执行方法 start|stop|restart APP_OS=linux # 系统类型 linux|win # 获取线程号 APP_PID=`netstat -ano | grep $APP_PORT | grep LISTENING | awk '{print $5}'` # 启动命令 startApp(){ if [ ${APP_PID} ]; then echo "程序已经在运行了" else echo "执行 start 方法" nohup java -Djava.net.preferIPv4Stack=true -jar -Xmx3072M -Xms512M ./$APP_NAME --spring.profiles.active=$APP_EVN --server.port=$APP_PORT & echo $! > tpid echo Start Success! fi } # 停止命令 stopApp(){ echo "执行 stop 方法" if [ ${APP_PID} ]; then echo $APP_NAME "存在,执行 stop 方法" if [ ${APP_OS} == "linux" ]; then kill -9 ${APP_PID} && echo 'Linux Kill Process!' else cmd "/C TASKKILL /F /PID $APP_PID" echo 'Win Kill Process!' fi else echo $APP_NAME 没有运行 fi } # 重启命令 restartApp(){ echo " 1 执行 restart 方法" stopApp APP_PID='' #将进程号置空 sleep 2 echo "进程号:" ${APP_PID} echo " 2 执行 restart 方法" startApp } # 判断执行命令 取第一个参数 case $APP_ORDER in "start") startApp exit 0 ;; "stop") stopApp exit 1 ;; "restart") restartApp exit 2 ;; *) echo "Unknown inupt!" exit 3 ;; esac