Если nmcli device status
имеет disconnected
в столбце STATE
для ваших интерфейсов enp4s0f0
и enp4s0f1
, это означает, что NetworkManager берет на себя управление ими.
Выполните следующие команды от имени пользователя root:
nmcli device set enp4s0f0 managed no
nmcli device set enp4s0f1 managed no
, чтобы указать NetworkManager держать руки подальше от этих устройств. Это должно решить вашу проблему. Обычно NetworkManager должен автоматически сохранять эти настройки, чтобы они сохранялись после перезагрузки, но это может зависеть от используемого вами дистрибутива Linux.
После этого nmcli device status
должно отображать состояние этих сетевых интерфейсов как unmanaged
, указывая на то, что вы можете настроить их вручную без какого-либо вмешательства со стороны NetworkManager.
И придирка к вашему сервису systemd :, если ваш routingsf.sh
не содержит ничего, что продолжает работать вечно, а просто выполняет команды типа «установил один раз и готово» -, например ip route add
, ifconfig
, arp
и ethtool
, вы можете добавить две строки в раздел [Service]
вашего служебного файла:
Type=oneshot
RemainAfterExit=yes
Если вы не укажете тип службы, systemd будет считать Type=simple
,это означает, что процесс, запущенный с помощью ExecStart=
, будет работать вечно, пока не будет преднамеренно остановлен. Если ваш routingsf.sh
этого не сделает, systemd заметит, что ваша команда ExecStart завершает работу, и пометит службу как неудавшуюся.
Комбинация Type=oneshot
+ RemainAfterExit=yes
сообщает systemd, что ожидается, что ваш скрипт выполнит некоторые действия, а затем завершится, и что systemd должен показать состояние вашей службы как «выполняется», если скрипт завершился успешно. Затем у вас будет возможность добавить соответствующую опцию ExecStop=
, если вам нужен простой способ включать и выключать эти настройки с помощью стандартной команды systemctl
.