Chinaunix
标题:
请各位帮我看一下我这个重启程序的脚本问题出在哪里
[打印本页]
作者:
demongunner
时间:
2014-01-28 19:06
标题:
请各位帮我看一下我这个重启程序的脚本问题出在哪里
本帖最后由 demongunner 于 2014-01-28 19:07 编辑
脚本功能是先杀掉程序A和程序B,然后再先重启A,后重启B。
但是B有可能会重启失败,所以打算每个几秒检测一下知道B成功启动起来再退出脚本
目前遇到的问题是如果第一次没启动成功走到下面的while里面就会不停重启B程序
麻烦各位帮我看一下我这脚本是不是有问题,有的话问题出在哪呢?谢谢。
ps -ef | grep "./testA -p 205" | grep -v grep
if [ $? -eq 0 ];then
#找到了
ps -ef | grep "./testA -p 205" | grep -v grep | awk '{print $2}' | xargs kill -9
ps -ef | grep "./testB -p 205" | grep -v grep | awk '{print $2}' | xargs kill -9
else
#没找到,
ps -ef | grep "./testB -p 205" | grep -v grep
if [ $? -eq 0 ];then
#找到了
ps -ef | grep "./testB -p 205" | grep -v grep | awk '{print $2}' | xargs kill -9
fi
fi
ps -ef | grep "./testA -p 205" | grep -v grep
if [ $? -ne 0 ];then
#没找到,启动
cd /home/test/bin
./testA -p 205&
fi
sleep 2
ps -ef | grep "./testB -p 205" | grep -v grep
if [ $? -ne 0 ];then
#没找到,启动
cd /home/test/bin
./testB -p 205&
fi
sleep 5
echo "\n"
ps -ef | grep "./testB -p 205" | grep -v grep
while [ $? -ne 0 ]
do
cd /home/test/bin
./testB -p 205&
sleep 5
echo "\n"
ps -ef | grep "./testB -p 205" | grep -v grep
done
复制代码
作者:
demongunner
时间:
2014-01-28 19:13
对了,这个shell脚本是在程序B里面使用system函数调用的。
我直接运行脚本好像是能够进行重启
看网上说程序调用system函数后会忽略SIGQUIT信号,但是我杀程序用的是kill -9 不知道会不会造成影响。。。
求大神帮分析下啊
作者:
rdcwayx
时间:
2014-01-28 19:57
你试试看:
awk '{print $2| xargs kill -9}'
复制代码
作者:
weishuo1999
时间:
2014-01-29 09:14
单说kill -9在我们这一般是禁用的,有些进程比如有共享内存链表操作,这个时候kill会很悲催
回复
2#
demongunner
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2