сетевая служба systemd не работает?

Сегодня я устанавливаю Ubuntu 16.04 на свою машину. Когда я загружаю систему, я не могу получить IP-адрес от DHCP-сервера. Сетевой интерфейс переименован в enp2s0 из eth0. Я получаю IP-адрес только после команды запуска:

$ sudo ethtool -s enp2s0 autoneg off speed 100

Я пытаюсь добавить эту команду в сценарий инициализации (/etc/rc.local), но она не работает после перезагрузки системы.

Итак, с этого момента, когда моя машина загружается, мне всегда нужно вручную добавлять указанную выше команду, чтобы получить IP-адрес.

Может ли кто-нибудь помочь мне решить эту проблему?

Заранее спасибо.

Наилучшие пожелания,


person raspberrypi    schedule 25.05.2016    source источник


Ответы (2)


Поскольку вы используете Ubuntu, используйте командную строку и выполните следующее:

$ судокронтаб -е

и добавьте свой скрипт, который вы хотите выполнить при перезапуске, добавив это в конце:

@reboot ethtool -s enp2s0 autoneg off speed 100

Надеюсь это поможет.

person Ghassan Zein    schedule 25.05.2016

systemd считает и «rc.local», и «crontabs» «устаревшими». У него есть замены для обоих. Однако Ubuntu 16.04 поддерживает обе концепции.

Я думаю, ваша проблема в том, что теперь rc.local запускается до того, как сеть полностью подключена к сети, что приводит к сбою вашей команды.

Посмотрите на /lib/systemd/system/rc.local.service, чтобы увидеть, как systemd запускает ваш файл rc.local. Особо отметим, что строка After=network.target.

Попробуйте создать этот файл:

/etc/systemd/systemd/rc.local.service.d/10-wait-for-network.conf

Добавьте в него эти строки:

[Unit]
After=network-online.target

Затем перезагрузитесь и посмотрите, работает ли это для вас.

Использованная литература:

Кроме того, в будущем SO — не лучшее место для systemd вопросов. Вместо этого рассмотрите http://askubuntu.com для вопроса Ubuntu.

Я также добавлю, что обнаруженное вами изменение поведения может рассматриваться как ошибка в том, как Ubuntu эмулирует поддержку rc.local с помощью systemd. Если предлагаемое исправление работает, возможно, Ubuntu следует изменить замену rc.local, чтобы она загружалась после network-online вместо network.

person Mark Stosberg    schedule 25.05.2016