Что такое зомби-процесс или нить, и что их создает? Я просто убиваю их, или я могу сделать что-нибудь для диагностики того, как они умерли?
multithreading
debugging
linux-development
DeveloperDon
источник
источник
Ответы:
Процесс зомби мертвых процессов.
ОС просто хранит информацию, чтобы родитель мог проверить код выхода процессов на более позднем этапе, так как ОС хранит информацию о них и, таким образом, они появляются при просмотре процессов.
Нет, они уже мертвы
ОС будет очищаться, когда родитель умирает или получает код состояния от ОС.
Нет. Родитель может, но не оболочка.
источник
Поток зомби - это поток, который завершил свое выполнение, но не завершил его полностью. Он освобождает ресурсы, используемые потоком, но сохраняет запись в таблице потока / процесса.
Теоретически поток зомби выходит из этого состояния, выполняя _join (POSIX). Это означает, что когда ваш основной закончит, процесс зомби будет убит с помощью программы.
источник
Процесс зомби - это процесс, который как прекратил свое выполнение, так и был удален из списка запланированных процессов, но еще не удален. В зависимости от ОС, tt может иметь или не иметь различные ресурсы, назначенные ей, и может запрашиваться, но он не будет работать.
Некоторым ОС (по замыслу) не разрешается динамически создавать или удалять ресурсы за пределами определенной точки события (например, VxWorks Cert). Такие системы часто обходят это ограничение, используя заранее выделенные пулы ресурсов, из которых они получают, возвращают и повторно используют элементы. Однако, когда процесс в такой системе завершается, он не может быть удален и вместо этого будет зомбирован (завершен и удален из списка планирования).
Надеюсь это поможет.
источник
Когда поток / процесс уничтожен, но в соответствующей таблице все еще есть запись о нем, он становится зомби.
Это может произойти, когда, например, родительский процесс создает дочерний процесс, но завершается раньше, чем дочерний. Когда дочерний процесс завершается, он сообщает своему родителю о завершении. После этого запись дочернего процесса удаляется из соответствующей таблицы. Но родительский элемент уже завершен, поэтому запись все еще остается в таблице.
Нет способа избавиться от зомби, но перезагрузить
источник