如何控制 NetworkManager 建立连接的顺序?

如何控制 NetworkManager 建立连接的顺序?

我有一台运行 Fedora 28 的服务器。我使用 nmcli 创建了六个连接。我希望每次系统启动时这些连接都按特定顺序启动。我该怎么做?

当我查看 NetworkManager 参考手册时,我注意到 connection.autoconnect-priority 设置,其内容如下:

“自动连接优先级。如果将连接设置为自动连接,则优先选择优先级较高的连接。默认为 0。数字越大,优先级越高。”

这确实不是听起来像是我想要的功能。我不想只激活一个连接而不激活其余五个连接。我希望所有六个连接都按特定顺序激活。

我考虑过将命令添加到我的 crontab 并在启动时调用它的想法nmcli con up,但我想知道是否存在更“优雅”的解决方案。

答案1

这将逐一显示它们。将ONBOOT参数设置为nofirst。

#!/bin/bash

while true
do
  ip link set eth0 up && break
  sleep 3
done

echo "eth0 up.."

while true
do
  ip link set eth1 up && break
  sleep 3
done

echo "eth1 up.."

答案2

#!/bin/bash
for iface in eth1 eth3 eth0 eth2 
do
  count=0
  until  ip link set $iface up || [ $((++count)) -gt 20 ] 
  do
    sleep 3
  done

  if [ $count -gt 20 ] 
  then 
    echo " FAILURE to start interface $iface .."
  else
    echo "interface $iface up.."
  fi
done

这实际上只是对 Maltigo 答案中的代码进行了重构。
它还添加了在多次失败后退出的代码。

相关内容