重啓 shell腳本

參考 :http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3602889&page=2

平時在做系統部署時候經常用到重啓APP或web 的sh 腳本,但今天寫了個腳本如下 :

pidlist=`ps -ef|grep jenkins | grep -v "grep"|awk '{print $2}'`

echo "jenkins ProcessID List :$pidlist"

if [ "$pidlist" = "" ]

then

echo "no jenkins alive"

else

for pid in ${pidlist}

{

kill -9 $pid

echo "KILL $pid:"

echo "jenkins stop success"

}

fi

cd /home/uapci/jenkins

nohup /home/uapci/jenkins/bin/startup.sh & > /dev/null

echo "started >"


發現沒有達到重啓jenkins 的目的,反出現 Killed.說明腳本還沒運行完就被KILL掉了,這是由於執行 kill -9 $pid 時將sh 本身kill了,因爲我的文件命名爲 jenkins_restart.sh,包含了jenkins 關鍵字,所以在執行 pidlist=`ps -ef|grep jenkins | grep -v "grep"|awk '{print $2}' 一句的時候將自身PID 包含在內,解決方法 :

[color=red]重命名文件即可,文件名 不要包含grep 過濾的關鍵字!![/color]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章