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=enp1s0.Name=eth0

관련 정보