É possível executar manualmente uma única unidade de serviço emparelhada com timer do sistema para fins de teste?


21

Eu tenho um timer / conjunto de unidades de serviço que deve funcionar uma vez por dia sob --usercondições. Ele aparece systemctl --user statuse é registrado no diário, mas há uma parte do comando que falha.

Parece que algo no comando não está sendo interpretado corretamente. Quero fazer o futz com o arquivo da unidade e executar o serviço, examinar o log etc. para depurar o problema; no entanto, editar o cronômetro para disparar um minuto no futuro, aguardar e verificar o log é ... tedioso.

Pode fazer algo como systemctl --user execute xxxxxx.serviceapenas executar a coisa dang como se o temporizador disparasse?

Respostas:


12

Você pode ativar qualquer unidade manualmente, a menos que contenha uma diretiva RefuseManualStart=yese / ou RefuseManualStop=yesdiretiva (que faz exatamente o que elas dizem). Basta emitir systemctl --user start <whatever>(e systemctl --user stop <whatever>fazer o oposto).

Para citar systemctl (1) :

iniciar PATTERN ...

Inicie (ative) uma ou mais unidades especificadas na linha de comando.

<...>

parar PATTERN ...

Pare (desative) uma ou mais unidades especificadas na linha de comando.


Não está trabalhando aqui:Failed to restart {foo}.service: Operation refused, unit {foo}.service may be requested by dependency only.
eMPee584 9/07

1
@ eMPee584 Desde que esta resposta foi escrita, o systemd ganhou novas diretivas RefuseManualStart=e RefuseManualStop=(que fazem exatamente o que dizem). Eu atualizei minha resposta para mencionar isso.
intelfx 29/07
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.