Ваш вопрос отвечает сам на себя, это происходит потому, что эти процессы выполняются как дочерние элементы под эмулятором терминала. Таким образом, вы убиваете эмулятор терминала и при этом убиваете все дочерние процессы (так как дочерние процессы выполняются в той же группе процессов, что и эмулятор управляющего терминала).
Смотрите, например, следующее:
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-терминал», поэтому, если я уничтожу этот процесс, он автоматически уничтожит все дочерние процессы в группе процессов ... так же, как, например, выход из окна эмулятора терминала будет обязательно убей мое SSH соединение.
Такие программы, как оболочки, создают новые группы процессов, обычно помещая связанные дочерние процессы в группу. Каждая работа - это группа процессов. Вне ядра оболочка манипулирует заданием, отправляя сигналы группе процессов задания с помощью системного вызова killpg, который доставляет сигнал всем процессам в группе процессов.