Como matar todos os processos de um usuário?
Quando faço ps aux
obtenho uma lista de processos com vários usuários, e quero matar todos os processos do usuário name1
, por exemplo. Qual é um comando para fazer isso no Ubuntu?
Responder1
Nesse caso, é bem simples, você pode usar killall
para matar, ou enviar qualquer outro sinal, para vários processos de uma vez. Uma das opções de "filtragem" é o proprietário:killall --user name1
Responder2
Adicionando outra opção porque ninguém mencionou e eu não gosto killall
(usá-la no Solaris pode causar um desastre).
pkill
é mais portátil
pkill -u username
Responder3
Instalar slay
:
aptitude instalar matar
Então emita slay some-user
.
Esteja ciente de que se você eliminar coisas para usuários para os quais não conhece a finalidade, poderá inutilizar sua máquina (até reiniciar).
Se você realmente não deseja instalar o slay:
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill
(espere um pouco)
ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9
Responder4
De acordo com man kill
:
kill -9 -1
Kill all processes you can kill.
Para aplicá-lo a um usuário diferente:
su -l username kill -9 -1