#!/bin/sh
JarDir=`pwd`
do_start()
{
echo "pandora-login start ..."
nohup java -jar -Xmn256m -Xmx2048m -XX:MaxTenuringThreshold=2 -Dspring.profiles.active=ali $JarDir/pandora-login.jar >/dev/null 2>&1 &
sleep 3
SERVER_PID=`ps -ef|grep -v grep| grep "pandora-login.jar"|awk '{print $2}'`
if [ "$SERVER_PID" == "" ]; then
echo "pandora-login start fail"
return 1
fi
i=0
while [ $i -lt 60 ]
do
sleep 1
cpu_float1=`top -b -n 1 -p $SERVER_PID 2>&1 | awk -v pid=$SERVER_PID '{if ($1 == pid)print $9}'`
cpu1=`echo ${cpu_float1%.*}`
sleep 1
cpu_float2=`top -b -n 1 -p $SERVER_PID 2>&1 | awk -v pid=$SERVER_PID '{if ($1 == pid)print $9}'`
cpu2=`echo ${cpu_float2%.*}`
port=`netstat -nap | grep 9092 | grep LISTEN | grep $SERVER_PID`
if [ $cpu1 -lt 150 ] && [ $cpu2 -lt 150 ] && [ "$port" != "" ]; then
echo "pandora-login start success "$SERVER_PID
return 0
fi
echo "pandora-login starting... "$i
let i++
done
echo "pandora-login start fail"
return 1
}
do_stop()
{
SERVER_PID=`ps -ef|grep -v grep| grep "pandora-login.jar"|awk '{print $2}'`
echo "stop pandora-login_pid "$SERVER_PID
for PID in $SERVER_PID
do
kill $PID
done
while true
do
sleep 1
SERVER_PID_KILL=`ps -ef|grep -v grep| grep "pandora-login.jar"|awk '{print $2}'`
if [ "$SERVER_PID_KILL" == "" ]; then
break
fi
done
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
restart)
do_stop
sleep 1
do_start
;;
*)
esac
标签:脚本,do,shell,grep,启动,PID,SERVER,pandora,login
来源: https://www.cnblogs.com/f-society/p/13387332.html