systemctl After scheint nicht zu funktionieren

1172
Dan S

Ich habe einen benutzerdefinierten Dienst, den ich brauche, nachdem mysql online ist. Ich versuche, systemd / systemctl zu verwenden, um den Dienst beim Booten zu starten. Ich habe After=network.target mysqld.servicein meiner benutzerdefinierten Konfigurationsdatei festgelegt. Das Problem scheint zu sein, dass systemctl der Meinung ist, dass mysql mit dem Start des benutzerdefinierten Diensts fertig ist. Der benutzerdefinierte Dienst schlägt jedoch nach dem Überprüfen des Protokolls fehl, die Verbindung zur Datenbank herzustellen. Wenn Sie die Zeitstempel im mysql-Protokoll überprüfen, wird angezeigt, dass mein benutzerdefinierter Dienst gestartet wird, bevor mysql startbereit ist. Ich habe in der Dokumentation von systemctl nachgesehen und es scheint kein "Wartezeit vor dem Start des Timeouts" oder "Warte, bis ein Socket auf Verbindungen wartet" zu geben. Wie kann ich sicherstellen, dass mysql bereit ist, bevor mein benutzerdefinierter Service startet?

0
Verzögerung beim Start hinzufügen? soandos vor 12 Jahren 0
Woher? Systemctl-Konfigurationsdateien haben keinen Schlaf Dan S vor 12 Jahren 0
Anscheinend gibt es einen Fehler in der Einheitendatei von mysql, in dem systemd denkt, dass es gestartet wurde, bevor es tatsächlich ist. [Sie sollten es ablegen.] (Https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&version=rawhide&component=mysql) Um die Problemumgehung von soandos zu verwenden, können Sie etwas wie `ExecStartPre = / bin / sleep 10` hinzufügen . Patches vor 12 Jahren 0

1 Antwort auf die Frage

0
Matthias Šubik

Es gibt eine Option in systemd.service-Dateien, die explizit nach dem vorhandenen Socket sucht.

In der systemdokumentierten Dokumentation beschreibt Lennart Pöttering ausführlich, dass die meisten Dienste nicht den eigentlichen Deamon gestartet haben, sondern nur den Socket, an den sie binden können.

Systemd kann diese Sockets erstellen und startet mysql beim ersten Zugriff! Dies ist einer der Hauptgründe, warum systemd erstellt wurde.

http://0pointer.de/blog/projects/socket-activation.html