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?



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


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

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>


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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.