Hallo Beste aller Helfergemeinden,
heute habe ich mal wieder ein Problem, wobei ich ein paar Gedangenanstoesse brauche... duerfen auch Schlaege auf den Hinterkopf oder mit der Faust in die Fre.. sein... 😃
Also zu meinem Vorhaben: Ich moechte eine Systemd-Service-Datei(en) erstellen, die mir einen Dienst neu starten, falls vorher das Netzwerkverbindung zum Ziel getrennt wurde.
Dazu habe ich bereits zwei Dateien angelegt.
1. restart_test.service
/etc/systemd/system/restart_test.service schrieb
[Unit]
Description=Restart service, after PING fails
[Service]
ExecStartPre=/usr/bin/ping 192.168.0.222 -c 1 -v
ExecStart=/usr/bin/true"
TimeoutStartSec=5
Restart=on-failure
RestartSec=3
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
2. restart_test_action.service
/etc/systemd/system/restart_test_action.service schrieb
[Unit]
Description=Restart service after PING was successful
After=restart_test.service
Requires=restart_test.service
[Service]
ExecStart=/usr/bin/touch "/tmp/ping_test_successful"
RemainAfterExit=yes
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Dies funktioniert genau einmal, jedoch nicht mehr, wenn das Ziel ein zweites Mal unerreichbar ist. Hierfuer muesste der Dienst "restart_test_action" neu gestartet werden, was bei vorhandener Netzwerkverbindung unweigerlich zum Neustart des Dienstes, welcher in meinem Test durch ein einfaches Anlegen einer Datei "/tmp/ping_test_successful" ersetzt wurde, fuehrt.
Dies ist natuerlich nicht gewuenscht und in meinem Fall auch kontraproduktiv - sonst waer es ja auch zu einfach... XD
Ich habe mir auch schon ueberlegt, mit der ersten .service-Datei eine Hilfsdatei anzulegen und in diese "1" oder "0" zu schreiben, jenachdem, ob die Netzwerkverbindung vorhanden ist, oder nicht. In der zweiten .service-Datei koennte ich dann ein Bash-Script aufrufen, welches diese Hilfsdatei ausliest und den Dienst je nach Wert neustartet oder nichts tut. Nun scheiterte ich allerdings an der Auswertung, dass der Wert vorher zwangsweise einmal "0" gewesen sein muss.
Sollte es eine Variante geben, die ohne den Umweg ueber diese Hilfsdatei fuehrt, bevorzuge ich natuerlich diese.
Gruss, euer Freak.