我環顧四周,沒有解決方案爲我工作。 我想用命令行來終止perl腳本。如何通過名稱來終止程序/腳本?
例如:
killall myscript.pl
我在尋找一個類似的解決方案,所有的幫助表示讚賞。謝謝。
我環顧四周,沒有解決方案爲我工作。 我想用命令行來終止perl腳本。如何通過名稱來終止程序/腳本?
例如:
killall myscript.pl
我在尋找一個類似的解決方案,所有的幫助表示讚賞。謝謝。
你可以試試pkill,它是當今大多數發行版的標準。
例如,
pkill -f myscript.pl
如果你想要一個更便攜的解決方案,那麼你可以grep的名稱,提取PID,並殺死:
kill $(ps xa | grep [m]yscript | awk '{ print $1; exit }')
我不認爲這樣會工作,因爲'ps'會看到'perl/my/path/myscript.pl' – ldrumm
剛試過這個。似乎沒有工作。 – user3101398
您可以隨時使用-f開關,我編輯了原始答案。請參閱http://stackoverflow.com/questions/8987037/how-to-kill-all-processes-with-a-given-partial-name – tvm
在Perl中,分配給變量$0
應該改變的名稱進程列表。這將影響ps
命令的輸出,其中killall
和pkill
依賴於該命令。
killall myscript.pl
不會沒有額外-f
參數@tvm工作建議,因爲腳本是另一個程序(Perl解釋器)內運行,這樣的過程將被列爲perl /path/to/myscript.pl
你可以嘗試pkill perl
,但能殺死所有perl解釋器都表示當前用戶有權殺死所以它可能是危險的。
去了解這個程序,最好的辦法是分配給$0
變量
#!/usr/bin/perl
$0 = 'myscript';
sleep 60;
修改進程的名字......然後在一個標準的UNIX shell:
$pkill -9 myscript
有關更多信息,請參見Dynamically name processes。
爲什麼killall不工作?輸出是什麼?你能用'ps'來展示你想殺死的進程嗎? – micromoses
也許使用'pkill' ..... –