Почему вы думаете, что B не будет продолжать выполняться после того, как A убит, если B является потомком A ? Это не правда.
Но если вы все еще хотите, чтобы B не был дочерним элементом A , то вы можете сделать это, дважды * fork()
: один раз для создания дочернего элемента A½ и один раз для создания B . B - ребенок A½ и внук A . Затем немедленно выйдите из A½ . B будет наследоваться init
и больше не будет иметь отношения к A .
Если вас беспокоят такие сигналы, как SIGHUP
и SIGINT
, которые генерируются в ответ на такие события, как нажатие клавиши Control-C, которые передаются всей группе процессов переднего плана, см. cnicutar . ответить.