Frage Wie man systemd Maßeinheit ExecStart debuggt


Ich bin gespannt, ob ich das voll expandiert ausdrucken kann ExecStart/ExecStop Befehlszeile. Betrachten Sie folgendes Beispiel:

ExecStart=/usr/bin/java $OPTS_COMMON $OPTS $OPTS_LOG $OPTS_DEBUG some.class.Start --param1 ${PARAM1} --param2 ${PARAM2}

Ich habe ziemlich lange Befehlszeilen mit vielen beteiligten Umgebungsvariablen. Wenn einige der Variablen falsch sind (z. B. bei der Drop-in-Konfiguration), wird der Dienst möglicherweise überhaupt nicht gestartet. Allerdings sehe ich nirgendwo eine vollständig erweiterte Zeile mit substituierten envs und ich habe Mühe herauszufinden, was falsch ist.

Ich hatte kein Glück, dies zu googeln und bis jetzt ist die einzige Möglichkeit, die ich gefunden habe, das Ändern der Unit-Datei zum Ausführen /usr/bin/echo anstelle von Service selbst. Aber das ist ein bisschen ermüdend. Oder noch mehr lästige Lösung - überprüfen Sie jede Umgebungsvariable eins nach dem anderen.

Gibt es eine Möglichkeit, Systemd zu zwingen, mir zu zeigen, was eigentlich versucht wird, ausgeführt zu werden?


5
2017-09-18 16:36


Ursprung




Antworten:


Leider gibt es keinen eingebauten Weg. Um den endgültigen ExecStart anzuzeigen, können Sie das Debuggen aktivieren. Bearbeiten Sie die Datei /etc/systemd/system.conf und setze die LogLevel= zu debug. Dann wirst du etwas sehen wie:

java.service About to execute: /usr/bin/java $OPTS_COMMON... Dies löst Ihr Problem nicht, aber es ist gut zu sehen, dass die Systemkennung ersetzt wird. https://www.freedesktop.org/software/systemd/man/systemd.unit.html(Spezifikatoren)

Aber wenn Sie den Argumentwechsel wirklich auf den Grund gehen wollen, müssen Sie hier nachsehen: https://github.com/systemd/systemd/blob/7ce9cc154576e342015eab8c1500790a9sededc01/src/core/execute.c#L2570


4
2017-09-19 08:19



Ich hatte ein bisschen Angst, dass es keinen Weg gibt, wie es geht. :/ Danke trotzdem. - pystole


In der * .service-Datei im Abschnitt [Service]

ExecStartPre=/bin/bash -l -c 'echo "$OPTS_COMMON">/tmp/options.debug'

1
2018-02-17 01:11