今天,我在我的机器上安装了ubuntu 16.04。 当我启动系统时,我无法从DHCP服务器获取IP地址。 网络接口从eth0重命名为enp2s0。 我只在运行命令后获得IP地址:
$ sudo ethtool -s enp2s0 autoneg off speed 100
我尝试在init脚本(/etc/rc.local)中添加此命令,但在重启系统后它不起作用。
所以,从现在开始,当我的机器启动时,我总是需要手动添加上述命令来获取IP地址。
有人可以帮我解决这个问题吗?
提前致谢。
最诚挚的问候,
答案 0 :(得分:0)
由于您正在使用ubuntu,请使用命令行并执行以下命令:
$ sudo crontab -e
并添加您想要在重新启动时执行的脚本,方法是在最后添加:
@reboot ethtool -s enp2s0 autoneg off speed 100
希望这有帮助。
答案 1 :(得分: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不是systemd
问题的最佳位置。请考虑http://askubuntu.com代替Ubuntu问题。
我还要补充一点,您发现的行为更改可能被视为Ubuntu如何使用rc.local
模拟systemd
支持的错误。如果建议的修复工作正常,也许Ubuntu shoudl会将rc.local
替换更改为network-online
而不是network
。