Linux初學者的killall命令(8個例子)
我們已經討論了kill命令 ,如果你想在Linux中終止進程,你可以使用kill命令 。 但是,還有一個命令行實用程序可以用于相同的目的: killall 。 在本教程中,我們將使用一些易于理解的示例來討論此命令的基礎知識。
但在此之前,值得一提的是,本教程中包含的所有示例都已在Ubuntu 16.04 LTS上進行了測試。
Linux的killall命令
killall命令可以讓你通過名稱來終止進程。 以下是該工具的語法:
killall [OPTIONS] name
以下是手冊頁如何解釋該工具:
killall sends a signal to all processes running any of the specified commands. If no signal name is specified, SIGTERM is sent. Signals can be specified either by name (e.g.? -HUP or -SIGHUP) or by number (e.g.? -1) or by option -s.
If? the command name is not regular expression (option -r) and contains a slash (/), processes executing that particular file will be? selected for killing, independent of their name.
killall returns a zero return code if at least one process has been killed for each listed command, or no commands were listed and at least one process matched the -u and -Z search criteria. killall?returns non-zero otherwise.
A killall process never kills itself (but may kill other? killall? processes).
下面的問答樣例應該會讓你更好地了解killall命令的工作原理。
Q1。 如何使用killall命令?
該工具的基本用法非常簡單 - 您只需將流程的名稱作為參數傳遞給killall即可。 例如,要殺死在我的系統上運行的gthumb進程,我用以下方式使用killall:
killall gthumb
請注意,如果您不知道進程的確切名稱,則可以使用ps命令來獲取此信息。
Q2。 killall是否區分大小寫?
是的。 如果用戶無法正確寫入進程名稱,則會引發錯誤“未找到進程”錯誤。 以下是一個例子:
但是,如果您愿意,可以使用-I命令行選項強制killall忽略大小寫。
Q3。 在終止過程之前如何讓killall問?
假設你希望killall命令在殺死一個進程之前詢問用戶權限,那么你可以使用-i命令行選項。 這將使killall操作互動。
例如:
Q4。 如何選擇信號killall發送處理?
默認情況下,這是killall發送到進程的SIGTERM信號。 但是,您也可以發送其他信號。 您可以使用選項-s ,-- signal和-SIGNAL來發送這些其他信號。
然而,為了這個工作,你需要知道killall命令可以發送什么信號。 這可以使用-l命令行選項。
killall -l
以下是我們系統上面提到的命令列表:
Q5。 如何防止killall抱怨如果指定的過程不存在?
如果名稱傳遞給killall的進程沒有運行(不存在),那么該工具會將其傳遞給用戶輸出。
但是,如果您不希望該工具生成此類輸出,則可以使用-q命令行選項。
所以當使用-q時,你可以看到killall命令保持安靜。
Q6。 如何殺死用戶擁有的所有進程?
如果要求殺死特定用戶擁有的所有進程,則可以使用killall提供的-u選項。 不用說,該選項要求您指定用戶的用戶名作為其輸入。
killall -u [user-name]
例如:
killall -u himanshu
Q7。 如何根據時間殺死進程?
假設你想殺死所有已經運行超過5個小時的進程,那么你可以用下面的方法使用-o選項來完成這個任務:
killall -o 5h
當然,如果你不想殺死所有的進程,你可以指定進程名稱。 同樣的,如果你想殺死進程,比如說,不到4個小時,那么你可以使用-y命令行選項。
killall -y 4h
以下是手冊頁介紹這些選項的方式:-o, --older-than
Match only processes that are older (started? before)? the? time
specified.?? The? time is specified as a float then a unit.? The
units are? s,m,h,d,w,M,y? for? seconds,? minutes,? hours,? days,
weeks, Months and years respectively.
-y, --younger-than
Match? only? processes that are younger (started after) the time
specified.? The time is specified as a float then a? unit.?? The
units? are? s,m,h,d,w,M,y? for? seconds,? minutes,? hours, days,
weeks, Months and years respectively.
Q8。 如何確保killall只在進程死后返回?
在信號由killall傳遞給進程之后,如果你想要確保命令只在進程死后返回,那么你可以使用-w命令行選項來執行此操作,這會強制killall等待。
killall -w [process-name]
以下是手冊頁介紹此選項的方式:-w, --wait
Wait? for? all killed processes to die.? killall checks once per
second if any of the? killed? processes? still? exist? and? only
returns if none are left.? Note that killall may wait forever if
the signal was ignored, had no effect, or if the? process? stays
in zombie state.
結論
Killall可能不是新手的蛋糕,但也不是很復雜。 你需要練習它提供的命令行選項。 我們已經討論了其中的大部分,所以本教程應該是一個很好的起點。 一旦你完成了這些,你可以關于該命令的標題到其手冊頁 。