2014-04-09 35 views
0

我正在使用kill -9命令查殺腳本中的進程。該進程被殺死,但控制權正在退出腳本。如何在kill命令後執行以下語句?Linux kill - 不要退出程序

kill -9 `ps -ef | grep /home/myFile | grep -v grep | awk {'print $2'}` 

sleep 5 

echo Process Stopped 

這裏睡眠和回聲都不起作用。有人可以幫忙嗎?

+3

您需要生成進程列表(在它們被殺死之前;在腳本的'| awk'部分之前使用'| tee ps.log。$$'),以便您能夠看到爲什麼腳本正在被殺害。腳本的路徑可能包括'/ home/myFile',所以'kill -9'信號會被髮送到您的腳本以及您的目標進程。 –

+2

你確定你不是意外地殺死你的腳本嗎? 'grep -v grep'可能不夠... – John3136

+0

在子shell中運行腳本內的進程,即'script cmd1; scriptcmd2; (special_process_that_might_need_killing); scriptcmd_n'。祝你好運。 – shellter

回答

0

如果您已經安裝在你的機器pkill,你應該把它

$ pkill -9 -f /home/myFile 

如果不使用,可能是你可以用它代替grep -v grep

$ kill -9 $(ps -ef | grep '[/]home/myFile' | awk {'print $2'}) 

訣竅是[/]home/myFile古老的伎倆。 grep'ing [/]home/myFile/home/myFile, 相匹配,但ps中顯示的參數不包含grep /home/myFile