È possibile eseguire manualmente una singola unità di servizio accoppiata con timer a scopo di test?


21

Ho un set di timer / unità di servizio che dovrebbe funzionare una volta al giorno in determinate --usercondizioni. Si presenta con systemctl --user statuse viene registrato nel diario ma c'è una parte del comando che fallisce.

Sembra che qualcosa nel comando non sia interpretato correttamente. Voglio futz con il file di unità ed eseguire il servizio, esaminare il registro, ecc. Per eseguire il debug del problema; tuttavia, modificare il timer per attivare un minuto in futuro, attendere e controllare il registro è ... noioso.

Può fare qualcosa come systemctl --user execute xxxxxx.serviceeseguire semplicemente la cosa dang come se il timer si fosse attivato?

Risposte:


12

Puoi attivare qualsiasi unità manualmente, a meno che non contenga una RefuseManualStart=yese / o RefuseManualStop=yesdirettiva (che fa esattamente quello che dicono). Rilasciare systemctl --user start <whatever>(e systemctl --user stop <whatever>fare il contrario).

Per citare systemctl (1) :

avvia PATTERN ...

Avvia (attiva) una o più unità specificate nella riga di comando.

<...>

stop PATTERN ...

Arresta (disattiva) una o più unità specificate sulla riga di comando.


Non funziona qui:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584

1
@ eMPee584 Da quando questa risposta è stata scritta, systemd ha ottenuto nuove direttive RefuseManualStart=e RefuseManualStop=(che fanno esattamente ciò che dicono). Ho aggiornato la mia risposta per dirlo.
intelfx
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.