如何延迟系统单元直到网络准备好?

jo-*_*-so 6 networking cron systemd

我已经用我的 Debian 不稳定系统从 cron 切换到systemd-cron,但现在每天的“cron 作业”经常失败,因为它运行 mixmaster 从 Internet 获取其数据库,如果 cron-daily.timer 在网络正常,从暂停到RAM唤醒后,mixmaster无法访问服务器。

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
Run Code Online (Sandbox Code Playgroud)

是否可以将计时器延迟到网络启动并运行?

Jon*_*son 1

使用 systemd 的计时器而不是 cron 可能更值得。然后,您应该能够在单元中指定它所依赖的内容。

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