systemd-networkd
네트워크를 구성하는 데 사용하는 것은 기본적으로 다음과 같습니다.
cat /etc/systemd/network/eth1-dhcp.network
[Match]
Name=eth1
[Network]
DHCP=yes
하지만 이제 네트워크가 다운되면 시스템(라즈베리 파이와 유사한 장치)을 일부 변경해야 합니다. 나는 몇 가지를 시도했습니다.
/sys/class/net/eth1/carrier
-1 감시할 수는 있지만 물리적 네트워크 연결이 변경될 때만 변경된다는 점을 확인했습니다 .
-2 실행하면 journalctl -fu systemd-networkd
systemd-networkd가 네트워크 연결 변경에 어떻게 반응하는지 관찰할 수 있습니다.
-3 다음 스크립트를 추가해 보았습니다.
cat /etc/network/if-down.d/downTrigger.sh
#!/bin/sh
/usr/bin/echo `/usr/bin/date` > /run/justDownTriggered
ls -l /etc/network/if-down.d/downTrigger.sh
-rwxr-xr-x 1 root root 65 Apr 2 22:03 /etc/network/if-down.d/downTrigger.sh
해당 스크립트는 수동으로 잘 실행되지만 네트워크 연결을 끊으면 실행되지 않습니다. 나는 if-post-down.d
또한 변형을 시도했다. 이러한 트리거가 시스템 네트워크와 별개일 수 있습니까?
run
가장 중요한 것은 eth1 네트워크가 현재 systemd-networkd 구성과 함께 다운될 때 파일에 쓰거나 신호를 보낼 수 있도록 무언가를 연결하고 싶다는 것입니다 . 가능합니까? 이런 일이 발생할 때 실제로 실행하고 싶은 명령은 다음과 같습니다.
`systemctl restart my_other_service`
네트워크에 장애가 발생한 경우. 이 종속성을 파일에 넣을 수 있는 방법이 있다면 my_other_serivce.service
저는 최선을 다하겠습니다. 트리거는 네트워크에 장애가 발생하면 다시 시작(중지 아님)되어야 한다는 것입니다.
(저는 데비안 10을 사용하고 있습니다)