systemd: PID file /var/run/nginx.pid not readable (yet?) after start.

Gena Makhomed gmm на csdoc.com
Чт Ноя 23 16:28:55 UTC 2017


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

> Впрочем, если верить ответу тут:
> 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

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru