Назад | Перейти на главную страницу

Solaris 10 init не может использовать зомби-процессы

ps в настоящее время показывает 17617 зомби-процессов, каждый из которых имеет ppid 1 / init. init должен пожинать эти несуществующие процессы, но по какой-то причине это не так. Количество неработающих процессов растет.

Пытаясь заставить их пожинать, используя preap не работает с:

preap: Failed to reap 15977: the only non-defunct ancestor is 'init'

Кстати, вот как я считал процессы:

% ps -e -o pid,s,ppid | awk 'index($2,"Z")>0 {ppid[$3]=ppid[$3]+1} END {for (key in ppid) print key,ppid[key]}'
1 17617

Я нашел эту тревожную запись в журнале:

Jun 20 22:45:34 host genunix: [ID 470503 kern.warning] WARNING: Sorry, no swap space to grow stack for pid 1 (init)

ОС - Solaris 10 (SunOS host 5.10 Generic_150401-04 i86pc i386 i86pc).

Оказалось, что init просто перестал работать должным образом, вероятно, когда в системе были проблемы ввода-вывода со свопингом.

Как оказалось, если init завершится вне процесса выключения ОС, он просто перезапустится. Итак, я отправил init SIGSEGV (чтобы убедиться, что он не имитирует, но определяет, что завершение работы выполняется), он перезапустил init (все еще как pid 1), и новый init немедленно пожинал всех этих выдающихся зомби.

Однако мне, вероятно, следует перезагрузиться, чтобы устранить любые другие проблемы, которые могут возникнуть из-за проблем ввода-вывода подкачки.