softmixx background

nginx Daemon

Webserver

nginx Fehler: "Failed to read PID from file"

[ 22.02.2021 | Alex]
Auf manche Situationen ist man einfach nicht vorbereitet. Nach einer kleinen Konfigurationsänderung an einem nginx Webserver wollte ich abschließend nur noch den Dienst neu starten. Nur nginx wollte einfach nicht mehr starten.

Übliche Reaktion ist, hoppla hat sich doch ein Fehler in meiner Änderung eingeschlichen. Also alles rückgängig gemacht und wieder Neustart versucht:

sudo systemctl restart nginx

Nix, wieder gleiche Fehlermeldung. 

"Failed to read PID from file"

Eine Internetsuche nach dieser Zeile offenbart dann auch schon das Problem, ein Bug aus 2016 (!), der eine 'race condition' zwischen systemd und nginx in einer Ubuntu Umgebung beschreibt. Einen Bugfix gibt es dafür wohl bis heute nicht, lediglich ein Workaround wird ausgeführt, der auch bei mir funktioniert (Debian 10). Im Kern besteht der Workaround darin, dass nginx beim Start eine kleine Zeitverzögerung erfährt ("...sleep 0.1..."):

sudo mkdir /etc/systemd/system/nginx.service.d

Existiert der Ordner bereits, einfach ignorieren.

sudo printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf

nginx Start wird ein wenig 'verzögert'

sudo systemctl daemon-reload
sudo systemctl restart nginx

Neustart der Dienste