systemd: PID file /var/run/nginx.pid not readable (yet?) after start.
Maxim Dounin
mdounin на mdounin.ru
Пт Ноя 24 12:59:08 UTC 2017
Hello!
On Fri, Nov 24, 2017 at 12:16:08PM +0300, Vadim A. Misbakh-Soloviov wrote:
> Прошу прощения за то, что вставляю свои пять копеек, но у меня, почему-то, на
> Gentoo NgX вполне замечательно стартует на SystemD без ругани, на которую
> жалуется ОП:
[...]
> В связи с этим у меня возникает вопрос: а что я, собственно, делаю не так?
Там race:
- запущенный процесс делает fork() и выходит;
- потомок делает setsid(), umask(), перенаправляет stdin/stdout в
/dev/null, и уже после этого создаёт pid-файл.
Соответственно systemd может успеть попытаться прочитать pid-файл
до того, как он создан. Успеет или нет - зависит от количества
процессоров и поведения шедулера.
У меня получается воспроизвести проблему на виртуалке с Ubuntu
после того, как я оставил в ней только один процессор. Где-то раз
в 3-5 запусков он успевает.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru