Ubuntu 18不能再像Ubuntu 16一样通过编辑rc.local来设置开机启动脚本
通过简单设置后,可以使rc.local重新发挥作用
建立rc-local.service文件
sudo vim /etc/systemd/system/rc-local.service
配置开机自启服务
将下列内容复制进rc-local.service文件
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
创建rc.local
sudo vim /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo "看到这行字,说明添加自启动脚本成功。" >> /usr/local/test.log
exit 0
给rc.local赋权
sudo chmod +x /etc/rc.local
启动服务并检测状态
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
重启并检测test.log文件
cat /usr/local/test.log
这里你应该看到两行字,这是因为在重启前启动rc.local服务时也执行了一次/etc/rc.local文件。
如果你遇到了什么问题,或者文章里有不对的地方欢迎留言。
我会随时查看!
end
随着Ubuntu 18.04采用systemd作为默认初始化系统,开发者可能会发现传统的通过编辑rc.local文件来设置开机启动脚本的方法不再适用。然而,通过一些额外的设置,我们依然可以让rc.local继续发挥作用。
建立rc-local.service文件
首先,我们需要创建一个新的服务单元文件rc-local.service,以告诉systemd如何执行rc.local脚本。
sudo vim /etc/systemd/system/rc-local.service
配置开机自启服务
将下列内容复制到rc-local.service文件中:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
创建rc.local
接下来,我们需要创建/etc/rc.local文件。如果文件已经存在,确保其内容如下:
sudo vim /etc/rc.local
将以下内容粘贴进文件中:
!/bin/sh -e
rc.local
This script is executed at the end of each multiuser runlevel.
Make sure that the script will "exit 0" on success or any other
value on error.
In order to enable or disable this script just change the execution
bits.
By default this script does nothing.
echo "看到这行字,说明添加自启动脚本成功。" >> /usr/local/test.log
exit 0
给rc.local赋权
确保rc.local文件具有执行权限:
sudo chmod +x /etc/rc.local
启动服务并检测状态
启用并启动rc-local服务:
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
运行status命令来验证服务是否成功启动。
重启并检测test.log文件
最后,重启系统,以确保rc.local在系统启动时被执行。重启后,检查/usr/local/test.log文件,确认脚本是否成功运行:
cat /usr/local/test.log
你应当看到输出中包含两行 “看到这行字,说明添加自启动脚本成功。”。其中第二行是因为在重启前启动rc-local服务时也执行了一次/etc/rc.local文件。
通过这些步骤,您可以在Ubuntu 18.04中重新启用rc.local来设置开机启动脚本,保持与旧版本的兼容性。这种方法非常简便,并且确保您的启动任务能在每次多用户模式启动时自动执行。