Matar todo o processo de usuários no Ubuntu?

20

Como matar todo o processo de um usuário?

Quando eu faço ps auxeu obtenho uma lista de processos com vários usuários, e eu quero matar todo o processo do usuário, name1por exemplo! O que é um comando para fazer isso no Ubuntu?

user15992
fonte
possível duplicata Como faço para matar todos os processos de um usuário usando sua UID
Gilles 'SO parada sendo mal'
11
Se os usuários são pessoas reais, provavelmente não é uma boa ideia. Eu também acho que você quer matar processos para economizar tempo. Esta é uma péssima ideia. Por exemplo, os serviços no Ubuntu podem ser interrompidos usando sudo service the-service-name stop. Matar processos podem deixou arquivos corrompidos, bancos de dados, etc.
Tiktak

Respostas:

27

Nesse caso, é bastante simples, você pode usar killallpara matar ou enviar qualquer outro sinal para vários processos ao mesmo tempo. Uma das opções de "filtragem" é o proprietário:killall --user name1

njsg
fonte
Eu não estava ciente da --userdiscussão, obrigado!
jmtd
4
Note-se que, killallpor exemplo, o Solaris Unix mata todos os processos em execução que pode! Veja: en.wikipedia.org/wiki/Killall
donothingsuccessfully
Isso basicamente desconectou o ubuntu 18.
Manohar Reddy Poreddy
14

Adicionando outra opção porque ninguém a mencionou, e eu não gosto killall(usá-la no solaris pode causar desastre).

pkill é mais portátil

pkill -u username
Patrick
fonte
Não encontro killallno Ubuntu, mas pkilljá está instalado.
David.perez
2

Identifique o usuário e, em seguida, killall -user <username>

Eles terão um processo bash (ou similar) associado à matança da sessão de login que matará a sessão.

Para obter uma visão geral potencialmente melhor do que um usuário está fazendo - tente pstree <username>

SuperBOB
fonte
você precisa de dois traços antes do usuário, por exemplo--user
jmtd
1

Instalar slay:

aptitude install slay

Então emita slay some-user.

Esteja ciente de que, se você eliminar itens para usuários para os quais não conhece a finalidade, poderá tornar sua máquina inutilizável (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
jmtd
fonte
11
Btw awkpode cumprimentar algo em si. Não há necessidade de fazer grep smth | awk, porque você pode usar apenas em seu awk '/smth/{...}'lugar.
apressar
Aqui está uma pequena função útil para você. killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
Rcjohnson 28/03