Matar a un tree de processs en la parte superior / htop

htop me permite ver muy bien treees de processs dentro del caparazón. Puedo matar processs presionando F9 (KILL) y luego seleccionando qué señal (por ejemplo, 15 SIGTERM ) quiero enviar a un trabajo para matar.

Sin embargo, esto solo me permite matar un process a la vez. ¿Hay alguna manera de matar un tree completo de processs usando htop ?

De man htop :

COMANDOS INTERACTIVOS

Space Tag o untag un process. Los commands que pueden operar en processs múltiples, como "matar", se aplicarán a la list de processs labeldos , en lugar de a la actual.

U Deshabilitar todos los processs (eliminar todas las tags agregadas con la tecla Espacio).

Proceso F9, k "Kill": envía una señal que se selecciona en un menu, a uno o a un grupo de processs. Si los processs fueron labeldos, envía la señal a todos los processs labeldos. Si ninguno está labeldo, se envía al process seleccionado actualmente.

No es exactamente la respuesta que estabas buscando, pero estaba cerca. También puede eliminar grupos de processs o niños con kill, ver:

https://stackoverflow.com/questions/392022/best-way-to-kill-all-child-processes

Desde la página de Htop:

F5, t Vista de tree: organiza processs por paternidad y diseña las relaciones entre ellos como un tree. Al alternar la tecla, se cambiará de tree a la vista de sorting seleccionada anteriormente. Al seleccionar una vista de sorting, saldrá de la vista de tree.

Entonces presiona F5, y es posible que tengas que presionar 't'. Eso te permitirá matar a todo el tree.

Podrías secuestrar el htop de htop . En htop , presionar s invoca strace -p <the-pid-of-the-selected-process> .

Entonces, lo que podrías hacer es crear un command strace que contenga algo como:

 #! /bin/sh - pids=$(ps -eo pid= -o ppid= | awk -v exclude="$PPID" -v pid="$2" ' function descends(p) { if (p == exclude) return 0 if (p == pid) return 1 if (p <= 1) return 0 return descends(parent[p]) } { parent[$1]=$2 } END { for (p in parent) if (descends(p)) print p }' ) if [ -z "$pids" ]; then echo >&2 "No process found to kill" else echo >&2 Killing $pids kill $pids fi 

Y colóquelo en algún directory como ~/.htop-hijack , y llame a htop como:

 PATH=~/.htop-hijack:$PATH htop 

Luego, al presionar s se invocaría ese command en lugar de strace (debe presionar Esc para regresar a la pantalla principal después).

Intereting Posts