¿Cómo se puede utilizar htop para suspender un proceso y todos sus procesos secundarios?

¿Cómo se puede utilizar htop para suspender un proceso y todos sus procesos secundarios?

Lo uso recollpara indexar archivos y aparece en momentos inoportunos.

Cuando suelo htopcambiar la vista a una vista de árbol usando F5 y filtrar la lista de procesos, veo un proceso maestro ejecutándose y procesos secundarios debajo de él. Cuando presiono F9 para elegir una opción de terminación, no parece responder a la SIGTERMopción, así que tengo que usarla SIGKILL.

¿Existe una opción para pausar o detener el proceso principal y todos sus hijos en lugar de eliminarlo directamente?

Respuesta1

Desde la versión2.0.0(lanzado en 2016), puede presionar cpara etiquetar el proceso y sus hijos. Esto se menciona en la ayuda integrada que se muestra en h.

Luego puede presionar kpara enviar una señal a los procesos etiquetados; Se le presentará la lista de todas las señales posibles para elegir.

Respuesta2

Puedes elegir enviar la señal SIGTSTPo SIGSTOP:

  • SIGTSTP: Se envía la señal al presionar Ctrl+ Z. Suspenderá y detendrá el proceso, puedes reanudarlo usando bg(lo reanuda en segundo plano) o fg(lo reanuda devolviéndolo al primer plano).

  • SIGSTOP: Simplemente detiene el proceso. No se puede ignorar, no se puede bloquear. El proceso solo se reanudará si le envías una SIGCONTseñal.

Respuesta3

Puede presionar Spacepara etiquetar un proceso. El comando kill se aplica a todos los procesos etiquetados.

No existe una manera fácil de etiquetar un proceso y sus hijos, pero la vista de árbol ( t) debería enumerarlos de forma contigua.

Dependiendo de cómo se ejecute la recuperación, los procesos pueden estar en sus propiosgrupo de proceso. Si es así, puede usarlos kill -STOP -1234para suspenderlos todos, donde 1234 es el ID del grupo de procesos (generalmente, pero no necesariamente, el ID del proceso inicial en el grupo). Puede consultar con ps -o pid,ppid,pgid,comm -C recolly luego ps -o pid,ppid,pgid,comm ww | grep -v recollver si hay otros procesos en el grupo de procesos. Htop no tiene una interfaz para procesar grupos.

Si se llaman todos los procesos recoll, entonces un método más sencillo es filtrar los procesos por nombre. En htop, use el comando de filtro, luego podrá etiquetar fácilmente los procesos que desea eliminar. En la línea de comando, ejecute ps $(pgrep recoll)para enumerar los procesos coincidentes. Si está satisfecho con la lista, ejecute pkill -STOP recollpara suspender esos procesos.

información relacionada