Estaba ejecutando algunos procesos en una sesión de pantalla en un servidor remoto. Cuando intenté matar todos esos procesos:
pkill -U tim
todos mis procesos se eliminan, incluidos los que no quiero matar (es decir, la pantalla y la conexión ssh).
¿Hay alguna forma de eliminar todos mis procesos excepto la pantalla y la conexión ssh?
Si está matando mucho a todos sus procs, es posible que desee investigar por qué necesita hacer eso ... pero bueno, esto se trata de hacer cosas, no de no hacer cosas.
Una solución fácil sería usar dos ID de usuario ... uno para la pantalla y su conexión SSH, y el otro para todos los procesos que en algún momento querrá eliminar.
Esto va más allá del "pirateo informático" y del simple "pirateo", pero tiene una ventaja adicional en que cualquier OTRO programa que ejecute como usuario "conectado" no será asesinado cuando elimine los otros procesos. Esto podría incluir "colas" de registros de errores y cosas por el estilo que tal vez QUIERAS haber dejado.
¡Espero que esto ayude!
fuente
Tratar:
fuente
Utilicé el enfoque de @RoyRico, no puedo comentar sobre esa publicación por falta de reputación, y lo ajusté a mi sistema. Debido a alguna configuración diferente, esa no funcionó de fábrica.
Bueno, excluí más procesos que no quería haber matado. En segundo lugar, los PID aparecieron en la primera columna, por lo que el antiguo comando 'cortar' estaba totalmente en una posición incorrecta (como solución de piratería, algo completamente normal y aceptable;)). Tercero, mientras grep'ing tenía un "PID" como línea principal que excluí al usar la cola.
fuente
Para agregar a las respuestas existentes, lo siguiente funcionó para mí.
--no-run-if-empty
de laxargs
opción suprime la escritura de la ayuda en la pantalla sixargs
termina en blanco, es decir. No se encontraron procesos.Si coloca esto en un script bash, ¡incluya también
bash
el nombre del script bash en la lista de comandos ignorados!ps -U myUserName | egrep -v "ssh|screen|PID|ps|grep|cut|xargs|kill" | cut -b1-6 | xargs -t --no-run-if-empty kill
fuente