Заметил ещё одну особенность в тесте с #perl. После первого HUP номер воркера меняется, после остальных HUP-ов номер воркера остаётся тем же.
perl_module. Пока не поймал иного примера... Если поймаю - отпишу.
при гарантированно рабочей конифигурации и без ошибок в error_log ?
nginx -t проблем не показывал и после INT и перезапуска всё работало
пример с перлом показателен, тут, похоже (ИМХО) просто совпало так, что одна ошибка (перл не воспринимает #) помогает стабильно воспроизводить трудновоспроизводимую ошибку (nginx иногда не перечитывает конфиги).
так же хотел бы заметить, что поведение сервера по сравнению с версиями
0.3.x изменилось. Так как в списке изменений мне не удалось найти
объяснения, думаю, нужно сказать об этом.
Ранее по HUP переоткрывались лог-файлы. Теперь этого не происходит. (Не
знаю, должно ли это происходить по HUP или нет, в документации не
сказано, что должно, значит, видимо, не должно, но раньше происходило
точно (я пропустил в документации что файлы долны переоткрываться по
USR1, и чистил логи используя HUP. После обновления до 0.5.17 логи
перестали чистится, поэтому и заметил)). Объяснение из рассылки о том,
что рабочие процессы не успевают завершиться рассматривал. После HUP
висят те же 2 процесса (воркер и мастер, с теми же номерами что и до
HUP), т.е. процессы в нормальном рабочем состоянии (меня, правда
смущает, что id воркера тот же...)
Нет, и не должно.
По -HUP запускаются новые воркеры уже с новой конфигурацией которые пишут в новые лог файлы.
Но старые воркеры переходят в состояние "shutting down",
нет у меня воркеров в состоянии shutting down. У меня только один воркер и один мастер. Больше ничего. Не могут старые воркеры висеть сутки, потому что их нет. Они уже отработали, машина без нагрузки, всё закрывается мгновенно.
ps ax | grep nginx
26355 ? Ss 0:00 nginx: master process /usr/local/sbin/nginx -c /usr/local/etc/nginx/nginx_test.conf
26364 ? S 0:00 nginx: worker process
Никаких шатдаунов. Это всё что есть. Логи при этом не переоткрываются.
т.е. перестают принимать новые запросы, пишут в старые лог файлы пока не закончатся все обрабатываемые ими запросы и они не умрут.
висеть в таком состоянии они могут, как уже говорилось, сутками.
Судя по тому что написали Вы - у вас ошибка в конфиге и соотв новые воркеры просто не запускаются.
нет у меня в конфиге ошибок. по крайней мере nginx -t не говорит об ошибках. Конфиги я выслал. прям файлы брал при тестировании и прикреплял. Один так, один переименовал. Там нет ошибок. Или nginx -t не прав.
Что говорит в этот момент nginx -t ?
я пробовал -t, одна из первых мыслей была что в конфиге ошибка.
ещё раз прогнал все действия для перл-модуля заново,
после каждого изменения конфига, перед HUP делал
2007/04/17 08:27:07 [info] 26238#0: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
2007/04/17 08:27:07 [info] 26238#0: the configuration file /usr/local/etc/nginx/nginx.conf was tested successfully