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

В IIS, Выполнение приложения в Пуле приложений. Пул приложений работает в одном или нескольких процессах W3WP.

Это походит на то, что происходит, вот то, что Ваше приложение в конечном счете встречается с условием, с которым W3WP не может справиться, когда выполнено с минимальными полномочиями.

LocalSystem является высокой привилегированной учетной записью - когда материал запускается (или в Вашем случае, сохраняет), работающий LocalSystem, обычно который указывает на некоторую форму различия в уровне полномочий (иногда, различий в профиле пользователя).

Всем Идентификационным данным Пула приложений волшебно дают членство в IIS_IUSRS по умолчанию, который дает все разрешения, которых IIS требует для выполнения Пула приложений - это не может включать все полномочия, требуемые конкретным app/framework/one библиотек.

Попытайтесь включить установку Load User Profile в пуле приложений при выполнении низко привилегированный, и если это не улучшит вещи, то необходимо будет отладить его - или наблюдать его работающий с Монитором Процесса за возможным файлом или трудностями с доступом к реестру (http://live.sysinternals.com/procmon.exe), или захватить дамп памяти процесса, когда это будет отказавшим, захват PSSCOR2, и, возможно, запустите с! dae, если ничто не выглядит особенно нечетным на ту точку.

Короткая версия - то, что внутренний процесс / состояние во время выполнения кажется, что становится накормленным обедом; это не было должно; часто это будет своего рода проблемой собственного кода, которая делает это, но в Вашем случае, это могли быть полномочия.

Править: О, не LocalSystem, {локальный пользователь системы как администратор}. Глюк. Ну, дайте вещь Профиля, попытка - видит также этот бит.

Кроме того, Переработка: когда новый W3WP запускается для замены старого, теряя все состояние от старого в процессе, и старый уничтожен после 90 секунд, если это не завершает полезной работы, это все еще способно к и завершило работу себя. (читайте "по умолчанию"),

1
задан 5 April 2014 в 18:46
1 ответ

As someone who fell in love with daemontools thirteen years ago, I too try to supervise all the things. nginx is a bit feisty though, you have to use at least daemon off; in your config to run it in the foreground, and master_process off; if you really don't want it spawning any children. Just exec it then from your run program and it will behave like you expect.

I was cutting against the grain, however. I've come to accept that nginx has supervision built in. You'll notice that when you run it you get something like this:

$ 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)

The master process is essentially supervise. It's super lightweight and is solely responsible for making sure workers are running properly. I've never once had it crash on me, even in some fairly busy environments. So now I just let init stop/start it and worry about services I do need to supervise.

There are other considerations. Check out what the official documentation has to say about it: http://nginx.org/en/docs/faq/daemon_master_process_off.html

2
ответ дан 3 December 2019 в 21:19

Теги

Похожие вопросы