Ubuntu18以上都没法再用initd
管理系统,转为systemd
了。因此以前使用rc.local
的方法对Ubuntu18以上的系统无效。但是有时候自定义的脚本写Service
很麻烦,而且对我这种野生玩家很不友好,因此本文使用一种方法重新启用在Ubuntu18以上的系统中rc.local
开机自启的功能。
首先还是需要满足系统的规则,利用service
来开机自启脚本。
创建rc-local.service
:
vi /etc/systemd/system/rc-local.service
然后写入如下内容:
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
保存并退出。
建立文件rc.local
vi /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
以后添加开机自启脚本都写入这个文件的exit 0
之前就可以了。
systemd
默认读取/etc/systemd/system
下的配置文件, 因此还须要在/etc/systemd/system
目录下建立软连接:
ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/
chmod +x /etc/rc.local
启用服务:
systemctl enable rc-local
如果需要关闭,则:
sudo systemctl disable rc-local
然后就可以重启,重启后可以查看日志文件了:
cat /usr/local/test.log
请到客户端“主题--自定义配置--valine”中填入ID和KEY