Команда setsid()
отсутствует.
Каждый процесс * nix создает состояние выхода, которое должно быть получено.Предполагается, что родительский процесс должен пожинать его с помощью оператора wait (), если дочерний процесс должен завершиться первым.
Команда setsid()
переключает родительский процесс в init, когда родительский процесс завершается до дочернего процесса.
Root должен иметь возможность удалять зомби из списка процессов с помощью kill -9.Неопытные программисты иногда опускают setsid()
, что скрывает ошибки, которые приводят к ошибкам, которые в противном случае могли бы засорить дисковод.
В давние времена системный администратор использовал зомби для выявления неопытных программистов, которым необходимо дополнительное обучение для производствахороший код.
Состояние завершения, собранное init, отправляется в системный журнал, когда ядро преждевременно завершает программу.Это состояние выхода используется для определения характера ошибки, которая вызвала досрочное завершение (условия ошибки не обрабатываются программистом).
Состояние выхода, сообщаемое таким образом, становится частью файлов системного журнала или klog, которые обычно используются для отладки кода.