これが私が最終的に私の問題を解決した解決策です:
while ! ip link show eth0 | grep -q 'state UP'; do
sleep 1
done
ip link add macvlan0 link eth0 type macvlan mode bridge
ip addr add 192.168.0.240/32 dev macvlan0
ip link set macvlan0 up
ip route add 192.168.0.240/28 dev macvlan0
ただし、Synology で 2 つの「起動」スケジュール タスクがあり、起動時にいくつかのエラーが発生していました。その問題を解決するために、このタスクを構成して、他のタスクをプレタスクとして使用します。言い換えれば、新しいタスクを開始する前に前のタスクが終了するのを待って、順番に実行されるタスクです。
eth0
のステータスを確認する /sys/class/net/eth0/operstate
から ネットワーク インターフェイスが起動するまで待ちます:
while ! [ "$(cat /sys/class/net/eth0/operstate)" = "up" ]
do
echo "waiting for eth0 to be up"
sleep 2
done
ip link add macvlan0 link eth0 type macvlan mode bridge
ip addr add 192.168.0.240/32 dev macvlan0
ip link set macvlan0 up
ip route add 192.168.0.240/28 dev macvlan0