Su pregunta se responde a sí misma, esto sucede porque estos procesos se ejecutan como hijos en el emulador de terminal. Por lo tanto, elimina el emulador de terminal y, al hacerlo, elimina todos los procesos secundarios (dado que los elementos secundarios se ejecutan bajo el mismo grupo de procesos que el emulador de terminal de control).
Ver, por ejemplo, lo siguiente:
csb@darwin[~]$ ps fauwx | grep -A6 "xfce4-terminal" | awk '{ for (i = 2; i <= 9; i++) $i="" ; print $0 }'
csb 0:32 xfce4-terminal --geometry=271x65 --display :0.0 --role=Terminal-0x1340050-2606-1351620352 --show-menubar --show-borders --hide-toolbars --working-directory /home/csb --tab --working-directory /home/csb
csb 0:00 \_ gnome-pty-helper
csb 0:00 \_ bash
csb 0:00 |
\_ ssh [redacted]
csb 0:00 \_ bash
csb 0:00 \_ ps fauwx
csb 0:00 \_ grep --color=auto -A6 xfce4-terminal
csb 0:00 \_ awk { for (i = 2; i <= 9; i++) $i="" ; print $0 }
Todos estos procesos se ejecutan bajo los procesos 'xfce4-terminal', por lo que si elimino ese proceso, eliminará automáticamente todos los procesos secundarios en el grupo de procesos ... de la misma manera, por ejemplo, al salir de la ventana del emulador de terminal necesariamente mata mi conexión SSH.
Los programas como los shells crean nuevos grupos de procesos, generalmente ubicando procesos secundarios relacionados en un grupo. Cada trabajo es un grupo de procesos. Fuera del núcleo, un shell manipula un trabajo enviando señales al grupo de procesos del trabajo con la llamada al sistema killpg, que entrega una señal a todos los procesos en un grupo de procesos.