systemdサービスを開始する前にネットワークが完全に接続されていることを確認する方法は?

systemdサービスを開始する前にネットワークが完全に接続されていることを確認する方法は?

システム

  • ハードウェア:ラズベリーパイ4
  • オペレーティングシステム: Manjaro Arm
  • ネットワークアプリケーション:systemd-networkd

ネットワーク接続が確立された後にテストボットを呼び出すことができるすべてのアクションを実行しましたが、まだアドレス情報が見つからないというエラーが発生します。

ネットワークデーモンはオンライン状態を待ちます。

$ sudo systemctl is-enabled systemd-networkd-wait-online
enabled

ネットワーク構成

$ cat 20-wired.network 
[Match]
Name=enp1s0

[Network]
DHCP=ipv6

テストボットサービス

[Unit]
Description=Test bot
Wants=network-online.target
After=network-online.target

[Service]
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin/:/bin" "TZ=CEST"
Type=simple
ExecStart=/usr/bin/testbot
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
User=folaht
SyslogIdentifier=testbot

[Install]
WantedBy=multi-user.target

システムログ

$ sudo journalctl -u testbot
...
jui 15 08:11:14 Klav testbot[272] Error: Io(Custom { kind: Other, error: "failed to lookup address information: Temporary failure in name resolution" })
...

デーモンの状態

$ sudo systemctl status testbot
[sudo] Mot de passe de folaht : 
● testbot.service - Test bot.
     Loaded: loaded (/usr/lib/systemd/system/testbot.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Sun 2020-05-24 13:55:51 CEST; 1min 16s ago
    Process: 272 ExecStart=/usr/bin/testbot (code=exited, status=1/FAILURE)
   Main PID: 272 (code=exited, status=1/FAILURE)

mai 24 13:55:51 Klav systemd[1]: testbot.service: Scheduled restart job, restart counter is at 5.
mai 24 13:55:51 Klav systemd[1]: Stopped Test bot..
mai 24 13:55:51 Klav systemd[1]: testbot.service: Start request repeated too quickly.
mai 24 13:55:51 Klav systemd[1]: test.service: Failed with result 'exit-code'.
mai 24 13:55:51 Klav systemd[1]: Failed to start Test bot..

[編集する]

最近変更しましたが、うまくいくようですName=enp1s0Name=eth0

ベストアンサー1

おすすめ記事