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?

Gus
quelle

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.

intelfx
quelle
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