Я пытаюсь построить контейнер процесса. Контейнер будет запускать другие программы. Например, bash-скрипт, запускающий фоновые задачи с использованием '&'.
Важная особенность, которая мне нужна, заключается в следующем: когда я убиваю контейнер, все, что было создано под ним, должно быть уничтожено. Не только прямые дети, но и их потомки.
Когда я начинал этот проект, я ошибочно полагал, что когда вы убиваете процесс, его дети тоже автоматически убиваются. Я искал совета у людей, у которых была такая же неправильная идея. Хотя возможно поймать сигнал и передать убийство детям, это не то, что я ищу здесь.
Я верю в то, чего я хочу достичь, потому что, когда вы закрываете xterm, все, что в нем работает, уничтожается, если оно не было nohup'd. Это включает осиротевшие процессы. Вот что я хочу воссоздать.
У меня есть идея, что то, что я ищу, включает в себя сессии Unix.
Если бы существовал надежный способ идентифицировать всех потомков процесса, было бы полезно иметь возможность отправлять им и произвольные сигналы. например, SIGUSR1.
SIGHUP
его непосредственным дочерним процессам. Стандартный обработчик сигнала зависания прерывает выполнение процесса, поэтому маршрут по умолчанию - убить всех потомков. Узнайте больше о процессах и группах процессов.