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

Нужно ли мне настраивать инструменты демона для Nginx или Nginx более разумно обрабатывает его завершение?

Я использую инструменты демона с gearman
Я думал, стоит ли мне настраивать инструменты демона для Nginx
или он автоматически завершает работу (в случае проблем с памятью и т. д.)?

Как человек, влюбившийся в daemontools тринадцать лет назад, я тоже пытаюсь все контролировать. nginx немного дерзкий, вы должны использовать как минимум daemon off; в вашей конфигурации, чтобы запустить его на переднем плане, и master_process off; если вы действительно не хотите, чтобы он порождал детей. Просто exec затем из вашей программы запуска, и она будет вести себя так, как вы ожидаете.

Однако я резал против шерсти. Я пришел к выводу, что в nginx встроен контроль. Вы заметите, что когда вы запустите его, вы получите что-то вроде этого:

$ psg nginx
root      1361     1  0 Mar31 ?        00:00:00 nginx: master process /usr/sbin/nginx
www-data  1362  1361  0 Mar31 ?        00:18:10 nginx: worker process
www-data  1363  1361  0 Mar31 ?        00:18:44 nginx: worker process
$ pstree -p 1361
nginx(1361)─┬─nginx(1362)
            └─nginx(1363)

Главный процесс по сути supervise. Он очень легкий и несет полную ответственность за правильную работу рабочих. Я ни разу один раз даже в некоторых довольно загруженных местах. Так что теперь я просто позволю init остановить / запустить его и беспокоиться об услугах, которые мне действительно нужно контролировать.

Есть и другие соображения. Посмотрите, что об этом говорится в официальной документации: http://nginx.org/en/docs/faq/daemon_master_process_off.html