[Eisfair] Dienste laufen nach Reboot unerklärlicherweise nicht mehr

Marcus Röckrath marcus.roeckrath at gmx.de
Sa Aug 31 09:12:45 CEST 2024


Hallo,

einen Punkt, den man untersuchen sollte, wenn plötzlich bestimmte Dienste t
beim Boot

- nicht starten,
- mal starten, mal nicht,
- eventuell mal der eine mal ein anderer Dienst nicht startet,

ist einen Blick ins journalctl zu werfen, ob systemd über einen "ordering 
cycle" stolpert und dann, um den Ringschluss zu durchbrechen "Services 
deleted". Der nicht startende Dienst kann durchaus nicht das Problem sein, 
sondern ein ganz anderer Dienst.

Gründe für solche Ringschlüsse können SysV-Initskripte sein, insbesondere, 
wenn sie keinen LSB-Header haben oder dieser Header falsch ausgestaltet ist.

Ebenso kann der Fehler auch in einer falsch konfigurierten systemd-Unit 
liegen.

Hier mal ein paar Beispiele:

ip-eth.service: Found ordering cycle on network-online.target/stop
ip-eth.service: Found dependency on pure-ftpd.socket/stop
ip-eth.service: Found dependency on sockets.target/stop
ip-eth.service: Found dependency on basic.target/stop
ip-eth.service: Found dependency on ip-eth.service/stop
ip-eth.service: Job network-online.target/stop deleted to break ordering 
cycle starting with ip-eth.service/stop

Beim Start von ip-eth.service wird der "ordering cycle" festgestellt und die 
Abhängigkeiten anschliessend aufgelistet. Als Konsequenz wird das network-
online.target gestoppt.

Das heißt nun aber nicht, das ip-eth.service der Verursacher ist, den hat 
man in der Regel in irgendeinem der genannten Services oder Targets zu 
suchen. nach meiner Erinnerung war es in diesem Fall wirklich ip-eth.service 
oder der pure-ftpd.socket.

basic.target: Found ordering cycle on ip-eth.service/stop
basic.target: Found dependency on network.target/stop
basic.target: Found dependency on network-online.target/stop
basic.target: Found dependency on pure-ftpd.socket/stop
basic.target: Found dependency on sockets.target/stop
basic.target: Found dependency on basic.target/stop
basic.target: Job ip-eth.service/stop deleted to break ordering cycle 
starting with basic.target/stop

Hier führte der Fehler zum Verlust des Netzwerkes und ein falsche 
Konfiguration pure-ftpd.socket war der Grund.

Beide Beispiele stammen von meinem eisfair-Hauptserver und lustigerweise 
traten sie nichtmal bei jedem Boot auf. Systemd versucht ja Dienste 
möglichst parallel zu starten, so dass gegebenenfalls auch unterschiedlich 
lang dauernde Startzeiten eines Dienstes dann auch nur manchmal zum Problem 
werden.

Nun ein Beispiel aus dem von Martin eröffneten Thread, in dem er beschrieb, 
dass nach Updates Mail und das Netzwerk nicht mehr funktionieren würden:

vmware-tools.service: Found ordering cycle on mail.service/start
vmware-tools.service: Found dependency on route.service/start
vmware-tools.service: Found dependency on network-online.target/start
vmware-tools.service: Found dependency on vmware-tools.service/start
vmware-tools.service: Job mail.service/start deleted to break ordering cycle 
starting with vmware-tools.service/start

Hier war das Initskript der vmware-tools Schuld, aber der Systemd "killt" 
zum Durchbrechen den Mail-Service.

Auf dem gleichen System führte das bacula-Initskript zum Nichtanlegen der 
Default-Route durch Nichtausführen des route-Initskripts.

Wer Lust hat, kann ja mal schauen, ob sich unerkannt auch bei ihm solche 
Effekte, die bei der laufenden Umstellung auf systemd durchaus passieren 
können, (zeitweise) auftreten:

Meldungen des aktuellen Boots:
journalctl -b | grep -A 10 "ordering cycle"

Meldungen des vorigen Boots:
journalctl -b 1 | grep -A 10 "ordering cycle"

Meldungen des vor-vorigen Boots:
journalctl -b 2 | grep -A 10 "ordering cycle"

usw.

Wenn ja, bitte melden, um gegebenenfalls an betroffenen Paketen Korrekturen 
zu machen.

-- 
Gruß Marcus
[eisfair-Team]



Mehr Informationen über die Mailingliste Eisfair