Temporizador Systemd que expirou enquanto estava suspenso

6

Eu criei um temporizador do usuário systemd que expira diariamente, ou seja, à meia-noite. O problema é que meu computador normalmente é suspenso à noite. Quando eu acordo de manhã, quero que o temporizador acione, mas isso não acontece. Descobri a opção Persistente, mas isso só ajuda quando o sistema é desligado, já que aciona temporizadores expirados ao iniciar os serviços. Existe uma solução para esta outra que não seja, e. executando um cronômetro de hora em hora e salvando um timestamp em um arquivo em algum lugar?

Editar 2017-03-17: Estou usando o systemd 231 no ubuntu 16.10. O que eu quero é rodar lembrar uma vez por dia, de preferência quando eu acordo o computador pela manhã.

    
por Fredrik Arnerup 16.03.2017 / 10:45

2 respostas

2

Parece que não há problema com a opção Persistent e suspender. O problema parece ser que Persistent=true só funciona se o timer tiver tido a chance de acionar pelo menos uma vez, ou seja, se LAST não for n / a . Mas meu computador normalmente fica suspenso à meia-noite, então o temporizador nunca foi acionado.

    
por 20.03.2017 / 14:08
2

Uma opção é definir WakeSystem=true no arquivo .timer , o que despertará o computador da suspensão para executar o trabalho.

Em seguida, no arquivo .service que é executado, você pode adicionar:

 ExecStopPost=sudo /bin/systemctl suspend

Para re-ressuspender o computador quando o trabalho terminar em execução.

Você também precisará atualizar /etc/sudoers para permitir que o usuário execute o comando acima sem exigir uma senha.

Uma segunda opção é usar um dos timers monotônicos descritos em man systemd.timer like OnActiveSec= . Esses temporizadores param a contagem de tempo quando o computador é suspenso. Eles permitem que você expresse coisas como "Por favor, faça backup do meu computador uma vez a cada 8 horas em que ele estiver". Se o seu computador estiver normalmente em cerca de 8 horas por dia, isto corresponderá aproximadamente a uma vez por dia. Como você descreve, o seu computador é freqüentemente backup em torno da meia-noite de qualquer maneira - é feito o backup quando você primeiro suspender de manhã.

Em terceiro lugar, você confirmou que Persistent= não funciona com suspend quando a máquina é desligada?

    
por 16.03.2017 / 21:13