あなたの質問はそれ自身に答えます。これは、これらのプロセスがターミナルエミュレータの下で子として実行されているために起こります。そのため、ターミナルエミュレータを強制終了し、その際に、すべての子プロセスを強制終了します(子は制御端末エミュレータと同じプロセスグループで実行されているため)。
たとえば、次を参照してください。
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 }
これらのプロセスはすべて「xfce4-terminal」プロセスの下で実行されているため、そのプロセスを強制終了すると、プロセスグループ内のすべての子プロセスが自動的に強制終了されます。たとえば、ターミナルエミュレータウィンドウを終了する場合と同じ必ずSSH接続を切断してください。
シェルなどのプログラムは、通常、関連する子プロセスをグループに入れる新しいプロセスグループを作成します。各ジョブはプロセスグループです。カーネルの外部では、シェルはkillpgシステムコールを使用してジョブのプロセスグループにシグナルを送信し、プロセスグループ内のすべてのプロセスにシグナルを送信することにより、ジョブを操作します。