如何殺死一個用戶的所有進程?
例如,當我製作時ps aux
,我獲得了具有多個用戶的進程列表,並且我想殺死用戶的所有進程。name1
在 Ubuntu 中執行此操作的命令是什麼?
答案1
在這種情況下,它非常簡單,您可以用來killall
立即終止或發送任何其他訊號到一堆進程。 「過濾」選項之一是擁有者:killall --user name1
答案2
另一個選項,因為沒有人提到它,而且我不喜歡killall
(在Solaris 上使用它可能會導致災難)。
pkill
更便攜
pkill -u username
答案3
安裝slay
:
aptitude 安裝 slay
然後發出slay some-user
.
請注意,如果您為不知道目的的使用者刪除某些內容,則可能會導致您的電腦無法使用(直到重新啟動)。
如果你真的不想安裝 slay:
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill
(稍等一會)
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9
答案4
根據man kill
:
kill -9 -1
Kill all processes you can kill.
要將其應用到不同的用戶:
su -l username kill -9 -1