Ist es möglich, eine einzelne systemeigene zeitgesteuerte Serviceeinheit zu Testzwecken manuell auszuführen?


21

Ich habe eine Zeitschaltuhr / Service-Einheit, die unter bestimmten --userBedingungen einmal am Tag laufen sollte . Es wird mit systemctl --user statusangezeigt und im Journal protokolliert, aber es gibt einen Teil des Befehls, der fehlschlägt.

Es scheint, dass etwas im Befehl nicht richtig interpretiert wird. Ich möchte mit der Unit-Datei futz und den Dienst ausführen, das Protokoll untersuchen usw., um das Problem zu beheben. Das Bearbeiten des Timers, um eine Minute in der Zukunft auszulösen, das Warten und Überprüfen des Protokolls ist jedoch ... mühsam.

Kann man so etwas systemctl --user execute xxxxxx.servicetun, als würde der Timer ausgelöst?

Antworten:


12

Sie können jedes Gerät manuell aktivieren, es sei denn, es enthält eine RefuseManualStart=yesund / oder RefuseManualStop=yesDirektive (die genau das tun, was sie sagen). Einfach ausgeben systemctl --user start <whatever>(und systemctl --user stop <whatever>das Gegenteil tun).

So zitieren Sie systemctl (1) :

Start MUSTER ...

Starten (aktivieren) Sie eine oder mehrere Einheiten, die in der Befehlszeile angegeben sind.

<...>

stoppen Sie MUSTER ...

Stoppen (deaktivieren) Sie eine oder mehrere Einheiten, die in der Befehlszeile angegeben sind.


Funktioniert hier nicht:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584

1
@ eMPee584 Seitdem diese Antwort geschrieben wurde, hat systemd neue Direktiven erhalten RefuseManualStart=und RefuseManualStop=(die genau das tun, was sie sagen). Ich habe meine Antwort aktualisiert, um dies zu erwähnen.
Intelfx
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.