Cómo matar todos los procesos de Python excepto uno de bash


11

¿Cómo puedo matar desde bash todos los procesos de Python, excepto un script de Python? (Sé su nombre, pero su pid se puede cambiar a veces).

Necesito un poco, pkill -f "python"pero excluyendo el script específico de Python.

Por favor avise.

Respuestas:


13

ps aux |grep python |grep -v 'pattern_of_process_you_dont_want_to_kill' |awk '{print $2}' |xargs kill

Actualización: explicación paso a paso según lo solicitado en los comentarios

  • ps aux |grep python- muestra todos los procesos que coinciden con el pythonpatrón
  • grep -v 'pattern_of_process_you_dont_want_to_kill' - excluye el proceso que no quieres matar
  • awk '{print $2}' - muestra el segundo campo de salida, es PID.
  • xargs kill- Aplicar killcomando a cada entrada arg (PID).

Si no está familiarizado con el xargscomando, le aconsejo que no se preocupe si no lo comprende de inmediato. Podría parecer bastante complicado por primera vez. Publiqué un ejemplo muy simple de su uso, puede buscar en Google para obtener más información.


1
Genial, pero ¿podría explicar cómo funciona? Por ejemplo, ¿qué es awk '{print $ 2}' y xargs kill?
user370717

awk '{print $2}' - imprime el segundo campo de pssalida, en el caso actual lo es PID. xargsaplica el killcomando a cada unoPID
user1700494

1
Poner eso en un comentario es bueno, pero prefiero votar por tu respuesta después de que ese comentario bien formateado se integró en tu respuesta.
pollitos
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.