(Я изменил вопрос на более простой симптом.) Я создал дочерний и внучатый дочерние элементы в сценарии bash (в Ubuntu 14.04).
#! /bin/bash
{
sleep 21 &
sleep 22
}&
sleep 23
Но 2 типа команды для уничтожения группы процессов показывают разные результаты. (В этом тесте я запускал команду kill в другом терминале.)
kill -INT -<pgid> # -> grand child(sleep 21) survives.
kill -TERM -<pgid> # -> kills all correctly.
Не могли бы вы объяснить, что происходит внутри?