Hello! On Thu, Nov 23, 2017 at 06:28:55PM +0200, Gena Makhomed wrote:
> On 23.11.2017 17:37, Maxim Dounin wrote: > > >> В systemd's daemon(7) manpage очень подробно расписано > >> как должны вести себя SysV Daemons при работе с systemd. > >> И очевидно, что nginx этим требованиям не соответствует. > > >> Original process должен вызывать exit() только после того, > >> как будет полностью завершена инициализация daemon process, > >> в частности, после того как daemon process создаст свой pid файл. > > > Это, что называется, всё очень интересно, но вызывает сомнение > > успех подобных рекомендаций. Особенно с учётом отсутствия > > каких-либо внятных примеров того, что же использовать вместо > > daemon(3). О чём я, собственно, и писал выше. > > Что использовать вместо daemon(3) документировано в daemon(7): > https://www.freedesktop.org/software/systemd/man/daemon.html > > Lennart Poettering очень подробно ответил на этот вопрос в рассылке: > https://lists.freedesktop.org/archives/systemd-devel/2017-November/039830.html > > Впрочем, если очень хочется использовать все-таки daemon(3) то можно: > https://lists.freedesktop.org/archives/systemd-devel/2017-November/039834.html > > Кстати, Lennart Poettering нашел еще одну ошибку в исходниках nginx: > https://lists.freedesktop.org/archives/systemd-devel/2017-November/039832.html Это всё замечательно (за вычетом того, предлагаемое использование daemon(3) почему-то не учитывает, что после вызова daemon(3) parent-процесса уже нет, а "ошибка" - не ошибка), но не отменяет того, что чуть менее, чем все существующие демоны делают именно "daemon(); write_pidfile();", и при таком подходе - ситуацию не изменить. > > Впрочем, если верить ответу тут: > > https://lists.freedesktop.org/archives/systemd-devel/2017-November/039825.html > > > то соответствующее сообщение можно смело игнорировать, и systemd > > на самом деле умеет дожидаться создания pid-файла. То есть вопрос > > лишь в том, что при этом systemd пишет в лог. > > Не надо верить тому, что говорит Michael Chapman - он ошибается. > systemd не ждет появления pid-файла, я это проверял по исходникам. > > Лучше верить тому, что говорит Lennart Poettering, автор systemd: > https://lists.freedesktop.org/archives/systemd-devel/2017-November/039833.html > > Всегда надо указывать корректный PIDFile= для сервисов Type=forking: > https://lists.freedesktop.org/archives/systemd-devel/2017-November/039831.html > > Максим, можно ли сделать так, чтобы nginx соответствовал > тем требованиям которые предъявляет systemd к SysV Daemons? > > https://www.freedesktop.org/software/systemd/man/daemon.html Можно, я ж разве против? -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru