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