Jak zabít všechny procesy jednoho uživatele?
Když udělám ps aux
Získám seznam procesů s několika uživateli a chci zabít veškerý proces uživatele name1
například! Co je to příkaz v Ubuntu?
V tomto případě je to docela jednoduché, můžete pomocí killall
zabít nebo poslat jakýkoli jiný signál na spoustu procesů najednou. Jednou z možností filtrování je vlastník: killall --user name1
Přidání další možnosti, protože to nikdo nezmínil, a nemám rád killall
(jeho použití na Solaris může způsobit katastrofu).
pkill
je přenosnější
pkill -u username
Identifikujte uživatele a poté killall -user <username>
K jejich přihlašovací relaci bude mít přidružený bash (nebo podobný) proces, který zabije jejich relaci.
Chcete-li získat potenciálně lepší přehled o tom, co uživatel dělá - zkuste pstree <username>
Nainstalujte slay
:
aptitude install Slay
Poté vydejte slay some-user
.
Uvědomte si, že pokud zabijete věci pro uživatele, pro které neznáte účel, může se stát, že váš stroj bude nepoužitelný (až do restartování).
Pokud opravdu nechcete nainstalovat Slay:
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill
(Počkej chvíli)
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9