用来在Linux下管理Java进程的脚本

 

#!/bin/bash
# chkconfig: 2345 80 20
# description: service name

waittime=0
waitExit(){
   while true:do
if [ ! -d "/proc/$1" ]; then echo "process is finished" break else waittime=$(($waittime+1))
sleep 1s
echo "process is alive " $waittime fi if [ "$waittime" -eq 120 ]; then kill -9 $1
break
fi done } SERVICE_NAME=partner PATH_TO_JAR=jar.jar PID_PATH_NAME=/var/run/partner-pid case $1 in start) echo "Starting $SERVICE_NAME ..." if [ ! -f $PID_PATH_NAME ]; then nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & echo $! > $PID_PATH_NAME echo "$SERVICE_NAME started ..." else echo "$SERVICE_NAME is already running ..." fi ;; stop) if [ -f $PID_PATH_NAME ]; then PID=$(cat $PID_PATH_NAME); echo "$SERVICE_NAME stoping ..." kill $PID; waitExit $PID; echo "$SERVICE_NAME stopped ..." rm $PID_PATH_NAME else echo "$SERVICE_NAME is not running ..." fi ;; restart) if [ -f $PID_PATH_NAME ]; then PID=$(cat $PID_PATH_NAME); echo "$SERVICE_NAME stopping ..."; kill $PID; waitExit $PID; echo "$SERVICE_NAME stopped ..."; rm $PID_PATH_NAME echo "$SERVICE_NAME starting ..." nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & echo $! > $PID_PATH_NAME echo "$SERVICE_NAME started ..." else echo "$SERVICE_NAME starting ..." nohup java -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null & echo $! > $PID_PATH_NAME echo "$SERVICE_NAME started ..." fi ;; esac
原文地址:https://www.cnblogs.com/bobdeng/p/7118680.html