Percebo que em sistemas relacionados ao Debian, scripts crontab em nível de sistema em /etc/cron.hourly
, /etc/cron.daily
... estão sendo gradualmente desativados em favor de timers systemd. Por exemplo:
$ cat logrotate
#!/bin/sh
# skip in favour of systemd timer
if [ -d /run/systemd/system ]; then
exit 0
fi
...
Presumo que um objetivo seja desativar gradualmente o cron e o anacron. (Ver nota 1)
Para mim, um caso de uso crítico do cron são os crontabs definidos pelo usuário ( crontab -e
) que permitem que um usuário agende seus próprios trabalhos para serem executados como seu próprio usuário sem exigir privilégios de administrador do sistema.
Existem recursos no systemd, atuais ou planejados, que permitem que usuários não administradores agendem tarefas repetitivas?
Nota 1:
Enfraquecendo um pouco a declaração anterior, não encontrei nenhuma discussão particularmente boa, exceto aquelas que falam mal do cron e elogiam os timers do systemd. Não encontrei nenhuma evidência de que essa direção de viagem tenha sido transmitida pelos deuses da distribuição Linux. No entanto, eu noto isso como uma direção de viagem. Portanto, esta afirmação é baseada apenas na ideia de que se esta é uma direção de viagem e com o tempo eu esperaria que a maioria / todos os pacotes eventualmente seguissem o mesmo caminho e tornassem um sistema (cron) redundante.
Os usuários podem configurar timers systemd , basicamente criando um serviço e timer
~/.config/systemd/user
e habilitando o timer.Existem dois recursos principais que são perdidos ao alternar de tarefas cron definidas pelo usuário para timers systemd (se isso é bom ou ruim, depende da situação):
O uso de timers systemd adiciona várias possibilidades em comparação com tarefas cron; por exemplo, a especificação de tempo é mais expressiva que a do cron, e os temporizadores podem ser configurados para disparar com requisitos adicionais, como “somente quando uma VPN específica estiver ativa”. (É claro que todas essas sutilezas também podem ser escritas em cron jobs...) Também acho systemd timers mais agradáveis de gerenciar do que cron jobs: é fácil ver qual é o status de um cronômetro e a próxima vez que ele será acionado.
No Debian, o padrão que você viu é usado para evitar que tarefas repetitivas sejam executadas duas vezes, uma pelo systemd e outra pelo cron ou anacron (por qualquer motivo). Isso não significa que há um objetivo geral de desativar o cron ou o anacron.