Czy możliwe jest ręczne wykonanie pojedynczej systemowej sparowanej jednostki czasowej do celów testowych?

21

Mam zestaw czasomierza / jednostki serwisowej, który powinien działać raz dziennie w określonych --userwarunkach. Pokazuje się systemctl --user statusw dzienniku i zostaje zalogowany, ale część polecenia nie działa.

Wygląda na to, że coś w poleceniu nie jest interpretowane poprawnie. Chcę pobrać plik z jednostką i uruchomić usługę, przejrzeć dziennik itp., Aby zdiagnozować problem; jednak edytowanie licznika w celu uruchomienia minuty w przyszłości, czekanie i sprawdzanie dziennika jest ... żmudne.

Czy można zrobić coś takiego, jak systemctl --user execute xxxxxx.servicepo prostu uruchomić to cholerstwo, jakby uruchomił się zegar?

Gus
źródło

Odpowiedzi:

12

Możesz aktywować dowolną jednostkę ręcznie, chyba że zawiera ona dyrektywę RefuseManualStart=yesi / lub RefuseManualStop=yesdyrektywę (które robią dokładnie to, co mówią). Po prostu problem systemctl --user start <whatever>(i systemctl --user stop <whatever>odwrotnie).

Aby zacytować systemctl (1) :

uruchom WZÓR ...

Uruchom (aktywuj) jedną lub więcej jednostek określonych w wierszu poleceń.

<...>

zatrzymaj WZÓR ...

Zatrzymaj (dezaktywuj) jedną lub więcej jednostek określonych w wierszu poleceń.

intelfx
źródło
Nie działa tutaj:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584
1
@ eMPee584 Ponieważ ta odpowiedź została napisana, systemd zyskał nowe dyrektywy RefuseManualStart=i RefuseManualStop=(które robią dokładnie to, co mówią). Zaktualizowałem swoją odpowiedź, aby o tym wspomnieć.
intelfx