首页 文章

systemd网络服务不起作用?

提问于
浏览
0

今天,我在我的机器上安装了ubuntu 16.04 . 当我启动系统时,我无法从DHCP服务器获取IP地址 . 网络接口从eth0重命名为enp2s0 . 我只在运行命令后得到IP地址:

$ sudo ethtool -s enp2s0 autoneg off speed 100

我尝试在init脚本(/etc/rc.local)中添加此命令,但在重新引导系统后它不起作用 .

所以,从现在开始,当我的机器启动时,我总是需要手动添加上述命令来获取IP地址 .

谁能帮我解决这个问题?

提前致谢 .

最好的祝福,

2 回答

  • 0

    由于您使用的是ubuntu,请使用命令行并执行以下命令:

    $ sudo crontab -e

    并在最后添加以下内容时添加要在重新启动时执行的脚本:

    @reboot ethtool -s enp2s0 autoneg off speed 100

    希望这可以帮助 .

  • 0

    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不是_873057问题的最佳位置 . 请考虑使用http://askubuntu.com代替Ubuntu问题 .

    我还要补充一点,您发现的行为更改可能被视为Ubuntu如何使用 systemd 模拟 rc.local 支持的错误 . 如果建议的修复工作,也许Ubuntu shoudl改变 rc.local 替换加载 network-online 而不是 network .

相关问题