linux 系統上部署了一個 web 服務程序(jar),下面是一個 .sh 的啓停腳本的示例
#!/bin/bash
JAVA_HOME="/usr/lib/meeting/jdk/jdk1.8.0_181/"
#RUNNING_USER=meeting
APP_HOME=/usr/lib/meeting
JAR_NAME=meeting_reserve-0.0.1-SNAPSHOT;
JAVA_OPTS="-Xmx4096m -Xms4096m -Xmn2048m"
psid=0
checkpid() {
javaps=`$JAVA_HOME/bin/jps -l | grep $JAR_NAME`
if [ -n "$javaps" ]; then
psid=`echo $javaps | awk '{print $1}'`
else
psid=0
fi
}
start() {
checkpid
if [ $psid -ne 0 ]; then
echo "================================"
echo "warn: $JAR_NAME already started! (pid=$psid)"
echo "================================"
else
echo -n "Starting $JAR_NAME ..."
source /etc/profile
BUILD_ID=dontKillMe nohup $JAVA_HOME/bin/java $JAVA_OPTS -jar $APP_HOME/$JAR_NAME.jar >$APP_HOME/$JAR_NAME.log 2>&1 &
checkpid
if [ $psid -ne 0 ]; then
echo "(pid=$psid) [OK]"
else
echo "[Failed]"
fi
fi
}
stop() {
checkpid
if [ $psid -ne 0 ]; then
echo -n "Stopping $JAR_NAME ...(pid=$psid) "
kill -9 $psid
if [ $? -eq 0 ]; then
echo "[OK]"
else
echo "[Failed]"
fi
checkpid
if [ $psid -ne 0 ]; then
stop
fi
else
echo "================================"
echo "warn: $JAR_NAME is not running"
echo "================================"
fi
}
status() {
checkpid
if [ $psid -ne 0 ]; then
echo "$JAR_NAME is running! (pid=$psid)"
else
echo "$JAR_NAME is not running"
fi
}
info() {
echo "System Information:"
echo "****************************"
echo `head -n 1 /etc/issue`
echo `uname -a`
echo
echo "JAVA_HOME=$JAVA_HOME"
echo `$JAVA_HOME/bin/java -version`
echo
echo "APP_HOME=$APP_HOME"
echo "JAR_NAME=$JAR_NAME"
echo "****************************"
}
case "$1" in
'start')
start
;;
'stop')
stop
;;
'restart')
stop
start
;;
'status')
status
;;
'info')
info
;;
*)
echo "Usage: $0 {start|stop|restart|status|info}"
;;
esac
exit 0