¿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, name1
por ejemplo! ¿Qué es un comando para hacer eso en Ubuntu?
ubuntu
command-line
process
usuario15992
fuente
fuente
sudo service the-service-name stop
. Los procesos de matanza pueden dejar archivos, bases de datos, etc.Respuestas:
En este caso, es bastante simple, puede usarlo
killall
para 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
fuente
--user
discusión, gracias!killall
por ejemplo, Solaris Unix mata todos los procesos en ejecución que puede! Ver: en.wikipedia.org/wiki/KillallAgregar 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átilfuente
killall
en Ubuntu, peropkill
ya está instalado.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>
fuente
--user
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:
(espera un poco)
fuente
awk
puede grep algo en sí mismo. No es necesario hacerlogrep smth | awk
, porque puede usarlo en suawk '/smth/{...}'
lugar.killuser () { ps faux| awk -v user=$1 '$1==user{ system("kill -9 " $2) }' ;};