需求:每次重启服务器网卡不会自动启动,每次都要手动执行命令 “dhclient”重新获取ip才可以。很麻烦,需要开机后自动执行命令“dhclient”命令无需人工干预。
解决方法:
1、手动创建rc.local文件并写入如下启动脚本:(创建的路径及名称可以修改为自己的,不一定和我一样)
2、rc.local文件写入如下脚本vi /etc/rc.local
说明:#!/bin/bash # 执行 dhclient 命令 dhclient # 检查命令是否执行成功 if [ $? -eq 0 ]; then echo "Successfully executed command" > /test.txt else echo "Command execution failed" > /test.txt fi #!/bin/bash # 执行 dhclient 命令 dhclient # 检查命令是否执行成功 if [ $? -eq 0 ]; then echo "Successfully executed command" > /test.txt else echo "Command execution failed" > /test.txt fi #!/bin/bash # 执行 dhclient 命令 dhclient # 检查命令是否执行成功 if [ $? -eq 0 ]; then echo "Successfully executed command" > /test.txt else echo "Command execution failed" > /test.txt fi #!/bin/bash
# 执行 dhclient 命令
dhclient
# 检查命令是否执行成功
if [ $? -eq 0 ]; then
echo "执行成功" > /test.log
else
echo "执行失败" > /test.log
fi
- 将“dhclient ”更换为自己要执行的命令,也可以是脚本例如“sh /test.sh”。
- 后面是判断命令是否执行成功,如果不需要检测是否成功可以删除这部分代码。使用 $? 来获取上一个命令的退出状态。0 表示命令成功执行,而非零值则表示有错误发生。
4、执行如下命令创建“rc-local.service”服务文件并写入如下规则,rc-local名称可以改成自己的。sudo chmod +x /etc/rc.local
写入如下内容:sudo vi /etc/systemd/system/rc-local.service
5、执行如下命令设置开机自启服务和重新加载 systemd 。[Unit]
Description=/etc/rc.local Compatibility
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
至此设置完成,可以重启服务器验证一下,命令执行后会向/test.log写入日志。sudo systemctl enable rc-local.service
sudo systemctl daemon-reload
文章评论 本文章有个评论