Der Systemd-Dienst startet nur einen von zwei Prozessen, aber nur beim Neustart des Betriebssystems

Der Systemd-Dienst startet nur einen von zwei Prozessen, aber nur beim Neustart des Betriebssystems

Ich habe eine systemd-Unit-Datei, die zwei völlig separate Prozesse startet, Apache und Tomcat (und bevor Sie das kommentieren: Ich weiß, ich sollte einfach zwei separate Unit-Dateien erstellen, aber die Berechtigungen auf diesem Server sind streng gesperrt). Wenn ich den Dienst über eine SSH-Sitzung starte, startet und stoppt alles einwandfrei. Wenn der Server jedoch neu startet, startet nur Apache wieder, wobei systemd behauptet, dass alles in Ordnung sei. Wenn ich die Tomcat-Protokolle überprüfe, scheint es, als sei es gestartet, aber der Prozess bricht irgendwann einfach ab.

Was könnte die Ursache für diesen Verhaltensunterschied sein? Muss dieser Dienst vor dem Start auf etwas anderes warten?

Unit-Datei:

[Unit]
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/home/opiusr/appstart.sh
ExecStop=/home/opiusr/appstop.sh

[Install]
WantedBy=multi-user.target

Beide Skripte sind Wrapper, die etwa Folgendes enthalten:

/bin/su - opiusr -c "/home/opiusr/bin/start_tomcat -s" >> $LOG_FILE
/bin/su - opiusr -c "/home/opiusr/bin/start_apache -s" >> $LOG_FILE

Und diese Skripte umschließen einfach die Start- und Stoppskripte von Tomcat und Apache mit etwas zusätzlicher Protokollierung.

EDIT: Ich habe diese Antwort gesehen, die ziemlich ähnlich ist: Systemd beendet den Dienst sofort nach dem Start

Ich frage mich, ob ich etwas anderes tun kann, da das System ziemlich gesperrt ist. Ich habe vollen Bearbeitungszugriff auf die Unit-Datei und die beiden Skripte, kann aber keine neuen Dienste erstellen oder Systemverzeichnisse berühren.

verwandte Informationen