web-dev-qa-db-ja.com

ネットワークの準備ができるまでsystemdユニットを遅延させる方法は?

Debian不安定システムでcronから systemd-cron に切り替えましたが、インターネットからデータベースをフェッチするミックスマスターを実行し、cron-ネットワークが起動する前にdaily.timerがトリガーされ、サスペンドからRAMにウェイクアップした後、ミックスマスターがサーバーに到達できません。

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

ネットワークが稼働するまでタイマーを遅らせることはできますか?

6
jo-so

Cronではなくsystemdのタイマーを使用する価値があるかもしれません。その後、ユニットでそれが依存するものを指定できるはずです。

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

1

Cronの代わりにsystemdタイマーを使用します。

次に、systemd-unitで After=network-online.target and Wants=network-online.target

1
Mark Stosberg

私の setup では、cronジョブは10分ごとに実行されますが、インターネット接続がない場合は、nc -zw3 github.com 22 || exit 0などの接続テストによって終了します。最後にインターネット接続があると、一度1日、anacronジョブが実行されます。

0
Enno