2009-05-03 67 views
1

我運行下面的代碼失敗無法終止作業,而無需打開

sudo killall %4 

,其中4%是我的Vim會話。

如何在不進行前景處理的情況下終止工作?

+0

您正在使用什麼殼呢? – 2009-05-03 03:54:16

+0

@安迪:我用Zsh。 – 2009-05-03 04:07:25

+1

你的意思是,「你如何終止一項工作,而不是前景」? – 2009-05-03 05:08:39

回答

2

我相信你要「殺」而不是「killall」。我在tcsh下這樣的測試:

home% cat 
^Z 
Suspended 
home% kill %1 
home% 
[1] Terminated     cat 

而且,我懷疑這會使用sudo工作,因爲須藤將調用一個新的shell,不是嗎?在該shell中,%4不會被定義。

home% cat 
^Z 
Suspended 
home% sudo kill %1 
Password: 
kill: illegal process id: %1 

如果你真的需要sudo的,你可以試試這個:

home% jobs -l 
[1] + 26318 Suspended cat 
home% sudo kill 26318 
3

嘗試用kill %4代替。 unix shell使用%x作爲當前正在運行的進程的變量。要查看可以使用%x語法的過程,請使用jobs。 Killall是「kill」的封裝,基本上相當於`ps -aux | grep | cut -f2 -d「」| xargs殺死「或類似的東西,如果你是一個殼牌垃圾。

不,抱歉,那個shell命令不會很有效,但它確實說明了killall的工作方式= p。它只是殺死它可以匹配你提供的字符串的每一個進程。

此外,請嘗試「殺死男性」以瞭解有關殺戮的更多信息。特別是,kill -9你可能會覺得有用。這與「強制退出」相當。