Не удается открыть файл PID /var/run/*.pid

Недавно клиенты начали жаловаться, что после перезагрузки сервера сайты работают лишь на протяжении минуты.
Было выяснено, что проблема в веб-сервере Nginx. Она может возникнуть после обновления ОС или смены версии веб-сервера.
Дело в том, что после перезагрузки, процесс Nginx самопроизвольно завершается.
Разберём проблему подробнее на основе CentOS 7.

Проверяем состояние Nginx:

service nginx status

В итоге получили статус "activating (start)". Что довольно странно, т.к. Nginx находится в процессе запуска, но что-то мешает ему запуститься.

Также получили из вывода предыдущей команды строку: "Can't open PID file /var/run/nginx.pid (yet?)".
В таких случаях необходимо проверить наличие файла, путь к нему и права доступа. Интересно, что в директории "/var/run/" файл находился и его можно было открыть из под пользователя, но раз в минуту файл удалялся.
Дело в том, что "/var/run/" - ссылка на директорию "/run/" (на это натолкнула строка "Too many levels of symbolic links" из вывода состояния веб-сервера).

Решение оказалось довольно простым.

1. Необходимо поменять директорию расположения данного файла с "/var/run/nginx.pid" на "/run/nginx.pid" в следующих конфигурационных файлах:

/etc/nginx/nginx.conf 

/lib/systemd/system/nginx.service

2. После чего выполним команду, чтобы изменения в systemd вступили в силу:

systemctl daemon-reload

3. Перезагрузим Nginx:

service nginx restart

4. Вновь проверим состояние Nginx:

service nginx status

Вывод должен быть со следующей строкой: "Active: active (running)", что говорит нам о том, что веб-сервер запущен.


P.S.:

На PID файл могут ругаться так же fail2ban и mysqld. Процедура лечения аналогичная: необходимо в конфигурационных файлах (конфигурация программы и в systemd/) поменять директорию файла PID с "/var/run/" на просто "/run/".