Como atrasar uma unidade systemd até que a rede esteja pronta?

Como atrasar uma unidade systemd até que a rede esteja pronta?

Eu mudei do cron parasystemd-croncom meu sistema Debian instável, mas agora o "cron job" diário geralmente falha, porque ele executa o mixmaster que busca seu banco de dados na Internet e se o cron-daily.timer for acionado antes da rede estar ativa, após acordar da suspensão para RAM, o mixmaster não consegue acessar o servidor.

Apr 24 11:02:23 run-parts[13608]: /usr/bin/mixmaster-update: Get failed for http://www.noreply.org/echolot/pgp-all.asc (500 Can't connect to www.noreply.org:80)
Apr 24 11:02:23 run-parts[13608]: Downloading of mlist and/or mixring failed (do you need a proxy?). Aborting.
Apr 24 11:02:23 su[13809]: pam_unix(su:session): session closed for user mixmaster
Apr 24 11:02:23 run-parts[13608]: run-parts: /etc/cron.daily/mixmaster exited with return code 22

É possível atrasar o cronômetro até que a rede esteja funcionando?

Responder1

Use temporizadores do systemd em vez do cron.

Então, na sua unidade systemd, você pode especificarAfter=network-online.target and Wants=network-online.target.

Responder2

Pode valer a pena usar os temporizadores do systemd em vez do cron. Você deverá então ser capaz de especificar na unidade do que ela depende.

https://wiki.archlinux.org/index.php/Systemd#Handling_dependencies

Responder3

No meuconfiguraro cron job é executado a cada minuto, mas é encerrado se não houver conexão com a Internet, por meio de um teste de conectividade como

nc -zw3 github.com 22 || exit 0

Quando finalmente houver uma conexão com a Internet, então, uma vez por dia, os trabalhos anacron serão executados.

informação relacionada