Ubuntu18使⽤rc.local执⾏开机启动脚本
Ubuntu 18 使⽤ rc.local执⾏开机启动脚本(只能启动不带界⾯的程序)
Ubuntu 18 开机启动
回 rc.local
配置 rc.local.service
添加服务⽂件
新建 rc.local ⽂件
设置⽂件执⾏权限
验证
Ubuntu 18 开机启动
在 Ubuntu 16以前,有个很简单的 rc.local ,在这个⽂件内写上你要执⾏的命令,在开机后,系统就会以管理员权限去执⾏这些命令。但是,这个启动脚本的控制粒度并不是很精细。
所以,在Ubuntu18 版本开始,Ubuntu使⽤了 systemd 替代了 initd 管理系统。并且默认已经取消了 /etc/rc.local ⽂件。
回 rc.local
配置 rc.local.service
rc.local.service ⽂件路径
/lib/systemd/system/rc.local.service
编辑 rc.local.service
vim /lib/systemd/system/rc.local.service
rc.local.service 内容
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=no
GuessMainPID=no
#这⼀段原⽂件没有,需要⾃⼰添加
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
rc.local.service 内容解释
[Unit] 区块:启动顺序与依赖关系。
ConditionFileIsExecutable=/etc/rc.local
After=network.target
ConditionFileIsExecutable指定了执⾏的⽂件,
After 表⽰在 network.target 这个target后⾯进⾏执⾏。也就是⽹络启动完成之后,执⾏ /etc/rc.local ⽂件。 [Service] 区块:启动⾏为,如何启动,启动类型。
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no
[Install] 区块,定义如何安装这个配置⽂件,即怎样做到开机启动。
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
[Install] 块是我们⾃⼰编辑新增的。
添加服务⽂件
添加软链接,将 /lib/systemd/system/rc.local.service 链接到 /etc/systemd/system/rc.local.service
系统在开机后会⾃动去 /etc/systemd/system/ ⽬录下读取需要启动的服务配置
ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/rc.local.service
新建 rc.local ⽂件
vim /etc/rc.local
ubuntu vim命令写⼊启动命令
#!/bin/bash
# 将你需要执⾏的命令写在这⾥,禁⽌写⼊死循环命令
echo "hello" > /home/test.log
exit 0
设置⽂件执⾏权限
chmod 755 /etc/rc.local
如果你是在 /etc/systemd/system/ ⽬录下创建的⽂件,也要加上执⾏权限。
验证
重启主机,检查 /home/ 下是否有 test.log ⽂件。
如果⼀切正常,在 /home/test.log ⽂件内,可以看到 hello
————————————————
版权声明:本⽂为CSDN博主「安⼼写bug」的原创⽂章,遵循CC 4.0 BY-SA版权协议,转载请附上原⽂出处链接及本声明。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。