我正在尝试杀死一个进程,然后验证它是否已成功杀死。但是我发现虽然它被杀了,但在同一个剧本中它仍然显示它没有被杀死。我的脚本如下所示(首先通过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尚未被杀死”这一行。任何人都可以帮助我,这样当它已经被杀死时我不会打印那条线吗?