Loading
0

Ubuntu系统没有rc.local自启文件解决方法

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器
前言:Centos系统有/etc/rc.local文件,如果命令或脚本要设置开机自启,用这个是很方便的,但Ubuntu系统好像从18版本开始就不提供rc.local文件了,需要设置开机执行命令很不方便。本文介绍如何通过添加service方法实现开机执行脚本方法。
需求:每次重启服务器网卡不会自动启动,每次都要手动执行命令 “dhclient”重新获取ip才可以。很麻烦,需要开机后自动执行命令“dhclient”命令无需人工干预。
解决方法:
1、手动创建rc.local文件并写入如下启动脚本:(创建的路径及名称可以修改为自己的,不一定和我一样

vi /etc/rc.local

2、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 表示命令成功执行,而非零值则表示有错误发生。
3、执行如下命令给“/etc/rc.local”执行权限

sudo chmod +x /etc/rc.local

4、执行如下命令创建“rc-local.service”服务文件并写入如下规则,rc-local名称可以改成自己的。

sudo vi /etc/systemd/system/rc-local.service

写入如下内容:

[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

5、执行如下命令设置开机自启服务和重新加载 systemd 。

sudo systemctl enable rc-local.service
sudo systemctl daemon-reload

至此设置完成,可以重启服务器验证一下,命令执行后会向/test.log写入日志。

 
技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-3-36316-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:修复Linux系统软连接丢失无法启动问题
下一篇:阿里云ECS镜像导入到本地VMware虚拟机中方法