¿Eliminar todos los procesos de los usuarios en Ubuntu?

20

¿Cómo matar todo el proceso de un usuario?

Cuando realizo ps aux, obtengo una lista de procesos con varios usuarios, ¡y quiero eliminar todos los procesos de usuarios, name1por ejemplo! ¿Qué es un comando para hacer eso en Ubuntu?

usuario15992
fuente
posible duplicado de Cómo elimino todos los procesos de un usuario usando su UID
Gilles 'SO- deja de ser malvado'
1
Si los usuarios son personas reales, probablemente no sea una buena idea. También creo que quieres matar procesos para ahorrar tiempo. Esta es una muy mala idea. Por ejemplo, los servicios en Ubuntu se pueden dejar de usar sudo service the-service-name stop. Los procesos de matanza pueden dejar archivos, bases de datos, etc.
corruptos

Respuestas:

27

En este caso, es bastante simple, puede usarlo killallpara matar o enviar cualquier otra señal a un montón de procesos a la vez. Una de las opciones de "filtrado" es el propietario:killall --user name1

njsg
fuente
No estaba al tanto de la --userdiscusión, gracias!
jmtd
44
Cabe señalar que, killallpor ejemplo, Solaris Unix mata todos los procesos en ejecución que puede! Ver: en.wikipedia.org/wiki/Killall
donothings exitosamente
Esto esencialmente cerró la sesión en Ubuntu 18.
Manohar Reddy Poreddy
14

Agregar otra opción porque nadie lo ha mencionado, y no me gusta killall(usarlo en solaris puede causar un desastre).

pkill es más portátil

pkill -u username
Patricio
fuente
No encuentro killallen Ubuntu, pero pkillya está instalado.
david.perez
2

Identifique al usuario, luego killall -user <username>

Tendrán un proceso bash (o similar) asociado con su sesión de inicio de sesión que matará su sesión.

Para obtener una visión general potencialmente mejor de lo que está haciendo un usuario, intente pstree <username>

SuperBOB
fuente
necesita dos guiones antes del usuario, por ejemplo--user
jmtd
1

Instalar slay:

aptitud instalar slay

Entonces emitir slay some-user.

Tenga en cuenta que si elimina cosas para usuarios para los que no conoce el propósito, puede dejar su máquina inutilizable (hasta que reinicie).

Si realmente no quieres instalar slay:

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill

(espera un poco)

ps -e -o user,pid | grep '^some-user ' | awk '{ print $2 }' | xargs kill -9
jmtd
fuente
1
Por cierto, awkpuede grep algo en sí mismo. No es necesario hacerlo grep smth | awk, porque puede usarlo en su awk '/smth/{...}'lugar.
prisa el
Aquí hay una pequeña y útil función para ti. killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};
rcjohnson