¿Es posible ejecutar manualmente una sola unidad de servicio emparejada con temporizador systemd para fines de prueba?

21

Tengo un temporizador / conjunto de unidades de servicio que debería ejecutarse una vez al día bajo --user condiciones. Aparece systemctl --user statusy se registra en el diario, pero hay una parte del comando que falla.

Parece que algo en el comando no se está interpretando correctamente. Quiero futz con el archivo de la unidad y ejecutar el servicio, examinar el registro, etc. para depurar el problema; sin embargo, editar el temporizador para activar un minuto en el futuro, esperar y verificar el registro es ... tedioso.

¿Se puede hacer algo como systemctl --user execute xxxxxx.servicesimplemente ejecutar el dang como si el temporizador se activara?

Gus
fuente

Respuestas:

12

Puede activar cualquier unidad manualmente, a menos que contenga una RefuseManualStart=yesy / o RefuseManualStop=yesdirectiva (que hacen exactamente lo que dicen). Solo emitir systemctl --user start <whatever>(y systemctl --user stop <whatever>hacer lo contrario).

Para citar systemctl (1) :

iniciar PATRÓN ...

Inicie (active) una o más unidades especificadas en la línea de comando.

<...>

detener el PATRÓN ...

Detenga (desactive) una o más unidades especificadas en la línea de comando.

intelfx
fuente
No funciona aquí:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584
1
@ eMPee584 Desde que se escribió esta respuesta, systemd obtuvo nuevas directivas RefuseManualStart= y RefuseManualStop=(que hacen exactamente lo que dicen). He actualizado mi respuesta para mencionar eso.
intelfx