在shell脚本中杀死一个pid后,它仍然在同一个脚本中?

时间:2016-07-19 19:06:28

标签: shell kill-process

我正在尝试杀死一个进程,然后验证它是否已成功杀死。但是我发现虽然它被杀了,但在同一个剧本中它仍然显示它没有被杀死。我的脚本如下所示(首先通过ssh在远程服务器上运行,这就是你看到远程参数\ $ pid的原因):

pid=`ps -ef | grep 'someprog' | grep sh | tr -s ' ' | cut -d ' ' -f2` 
if [ ! -z "\$pid" ]; then
    echo kill pid: \$pid
    kill -9 \$pid
    sleep 10
fi

pid1=`ps -ef | grep 'someprog' | grep sh | tr -s ' ' | cut -d ' ' -f2`
if [ ! -z "\$pid1" ]; then
    echo \$pid1 is not killed yet
fi

虽然我已经“睡了10”,但我检查了另一个终端,这个pid已经消失了,pid1的测试仍然是真的,并打印出“$ pid1尚未被杀死”这一行。任何人都可以帮助我,这样当它已经被杀死时我不会打印那条线吗?

0 个答案:

没有答案