Обычно убийство родителя также убивает ребенка.
Причина, по которой вы видите ребенка, который еще жив после убийства отца, заключается в том, что ребенок умрет только после того, как решит обработать событие SIGKILL.Это не должно справиться с этим сразу.В вашем сценарии выполняется команда sleep (), которая не активируется для обработки каких-либо событий до тех пор, пока не будет завершен сон.
Почему PPID # 1?Родитель умер и больше не находится в таблице процессов.child.sh не связан необъяснимым образом с инициацией сейчас.У него просто нет бегущего родителя.Сказав, что он связан с init, создается впечатление, что если мы как-нибудь покинем init, этот init сможет контролировать процесс.Это также создает впечатление, что убийство родителя сделает прародителя владельцем ребенка.Оба не соответствуют действительности.Этот дочерний процесс все еще существует в таблице процессов и выполняется, но никакие новые события, основанные на его идентификаторе процесса, не будут обрабатываться, пока он не обработает SIGKILL.Это означает, что ребенок - предзомби, ходячий мертвец, которому грозит опасность быть маркированным.
Убийство в группе процессов отличается и используется для уничтожения братьев и сестер и родителя группой процессов #.Вероятно, также важно отметить, что «уничтожение процесса» - это не «убийство» само по себе, по-человечески, когда вы ожидаете, что процесс будет уничтожен и вся память вернется, как если бы она никогда не была.Он просто посылает определенное событие, среди многих, процессу для обработки.Если процесс не обрабатывает его должным образом, то через некоторое время появится операционная система и принудительно «очистит».
Это (убийство) происходит не сразу, потому что ребенок (или даже родитель)) мог записать что-то на диск и ожидать завершения ввода-вывода или выполнения какой-либо другой важной задачи, которая может поставить под угрозу стабильность системы или целостность файла.