Ich habe zwei Dienste A.service und B.service. Ich möchte, dass B gestoppt wird, wenn A beendet wird / getötet wird / gestoppt wird. Außerdem möchte ich, dass B neu gestartet wird, wenn A neu gestartet wird. Ich habe die Antwort unter Starten und Stoppen einer systemd-Einheit mit einer anderen ausprobiert . und richten Sie meine Dateien wie folgt ein: -
Ein Dienst
[Unit]
Description=A
Before=B.service
Requires=B.service
[Service]
ExecStart=/usr/share/A
ExecStopPost=/usr/evo/exit_handler.sh %p
Restart=always
StartLimitBurst=3
StartLimitInterval=300
B.service
[Unit]
Description=B
BindsTo=A.service
[Service]
Type=forking
ExecStart=/usr/share/B start
ExecStop=/usr/share/B stop
StartLimitBurst=5
StartLimitInterval=10
Restart=always
Wenn ich A töte oder einen System-Neustart von A durchführe, sehe ich, dass B neu gestartet wird. Wenn A jedoch mit dem Status 0 beendet wird, wird B nicht neu gestartet. Ich habe die systemd-Debug-Protokollierung aktiviert und sehe, dass sich der Status von A in "tot" ändert, jedoch nicht in "automatisch neu starten"