1. 程式人生 > 實用技巧 >服務啟動shell指令碼

服務啟動shell指令碼

#!/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