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