Was bedeutet der Status "aktiv (beendet)" für einen SystemD-Dienst?

41

Ich arbeite mit einem benutzerdefinierten Dienst, der im Wesentlichen einen Webserver namens thisismywebserver ausführt. Derzeit funktioniert es nicht (dh ich erhalte die Fehlermeldung "Verbindung nicht möglich", wenn ich versuche, auf eine Seite zuzugreifen).

Wenn ich diesen Befehl ausführe service thisismywebserver status, um den Status des Dienstes zu sehen, sehe ich, dass der Status "aktiv (beendet)" ist. Bedeutet dies, dass der Dienst nicht mehr funktioniert? Wenn nicht, was bedeutet das dann?

root@thisismywebserver-testing:~# service thisismywebserver status
● thisismywebserver.service - LSB: ThisIsMyWebServer server
   Loaded: loaded (/etc/init.d/thisismywebserver)
   Active: active (exited) since Sun 2015-11-08 23:01:33 EST; 18h ago

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Sehr unregelmäßig
quelle

Antworten:

16

Offenbar führen Sie ein System mit systemd aus, verwenden jedoch sysV-Befehle. Haben Sie ein sysV-Init-Skript oder eine systemd-Unit-Datei erstellt?

Status aktiv (beendet) bedeutet, dass systemd die Befehle erfolgreich ausgeführt hat, aber nicht weiß, dass ein Dämon zu überwachen ist.

Ist dies der Fall, müssen Sie dies in der Unit-Datei definieren, indem Sie die Optionen Type und ExecStart entsprechend konfigurieren, je nachdem, ob es sich bei dem von Ihnen gestarteten Prozess um den Hauptprozess handelt, untergeordnete Prozesse gabelt und beendet usw.

Überprüfen Sie die verschiedenen Manpages des Systems oder aktualisieren Sie Ihre Frage und senden Sie die Unit-Datei oder das Init-Skript.

Bram
quelle
Danke für deine Antwort! Ich habe gerade mit der Arbeit an diesem System begonnen, seit der vorherige Entwickler nicht mehr verfügbar war. Daher weiß ich nicht, welche dieser Alternativen zutreffen. Ich werde die von Ihnen erwähnten Manpages durchlesen und sehen, ob ich es herausfinden kann.
Sehr unregelmäßig
1
@Bram Können Sie uns mitteilen, wie wir das spezifizieren sollen? Geht es über das ExecStartund ExecStop? Ich stehe vor dem gleichen Problem
kingsmasher1
1
@ wer auch immer meine Antwort abgelehnt hat: Bitte kommentieren und erklären Sie, warum Sie der Meinung sind, dass diese Antwort nicht korrekt oder unvollständig ist.
Bram
Die LSB:in der mitgelieferten Beschreibung angegebene Meldung besagt, dass der Fragesteller keine Serviceeinheit, Bram, erstellt hat. Siehe unix.stackexchange.com/a/386876/5132 und unix.stackexchange.com/a/387314/5132 .
JdeBP
1
Dieser Status kann auch bedeuten, dass der Dienst gestartet wurde, sein Prozess jedoch sofort beendet wurde, was höchstwahrscheinlich auf einen schwerwiegenden Fehler zurückzuführen ist. Dies ist mir mit einem falsch konfigurierten openvpn-Dienst passiert.
23.