重启 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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值