ubuntu添加开机启动记录学习

最近在折腾VPS ipv6,一般是在网卡文件(/etc/network/interfaces)修改就好了.这几天买了个first-rootVPS,修改一直没成功.实在没办法就添加到开机启动也没成功,后面找到原因,(是first-root系统模版问题,默认在/etc/rc.local添加了(/bin/sleep 60 && /sbin/dhclient -cf /etc/dhcp/dhclient6.conf -6 &)代码 ).要感谢死色鬼和空空,这里记录一下ubuntu添加开机启动.
《ubuntu添加开机启动记录学习》

ubuntu16

这是我要开机启动的sh,可以根据你自己修改你自己需要开机运行的代码,(大佬别笑话我),在/etc/init.d/创建,然后给权限,

vi /etc/init.d/netip.sh
#!/bin/bash
ip addr add 2001:::::/64 dev ens3
ip addr add 2002::/64 dev ens3
ip addr add 2a04:::/48 dev ens3
chmod +x /etc/init.d/netip.sh

然后编辑/etc/rc.local,添加需要开机启动的任务,第2行是test的可以自己删掉

#!/bin/bash
bash /etc/init.d/netip.sh
echo "看到这个表示脚本成功 " > /root/test.log   
exit 0

给rc.local加上权限

chmod +x /etc/rc.local
ubuntu18

不再使用initd管理系统,改用systemd。使用systemd设置开机启动
为了像以前一样,在/etc/rc.local中设置开机启动程序,需要以下几步:
systemd默认读取/etc/systemd/system下的配置文件,该目录下的文件会链接/lib/systemd/system/下的文件。一般系统安装完/lib/systemd/system/下会有rc-local.service文件,即我们需要的配置文件。链接过来:

ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service  
cd /etc/systemd/system/  
cat rc-local.service  

rc-local.service内容

#  SPDX-License-Identifier: LGPL-2.1+  
#  
#  This file is part of systemd.  
#  
#  systemd is free software; you can redistribute it and/or modify it  
#  under the terms of the GNU Lesser General Public License as published by  
#  the Free Software Foundation; either version 2.1 of the License, or  
#  (at your option) any later version.  

# This unit gets pulled automatically into multi-user.target by  
# systemd-rc-local-generator if /etc/rc.local is executable.  
[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  

1) [Unit] 区块:启动顺序与依赖关系。

2) [Service] 区块:启动行为,如何启动,启动类型。

3) [Install] 区块,定义如何安装这个配置文件,即怎样做到开机启动。

创建/etc/rc.local文件

vi /etc/rc.local

将下面内容复制进rc.local文件

#!/bin/bash  
bash /etc/init.d/netip.sh
echo "看到这个表示脚本成功 " > /root/test.log  
exit 0

赋可执行权限

chmod +x /etc/rc.local

最后reboot重启系统,然后查看test.log

启动服务并检查状态

systemctl enable rc-local
systemctl start rc-local.service
systemctl status rc-local.service

或者修改rc-local.service
/lib/systemd/system/rc-local.service新增:

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

设置开机自启动rc-local

systemctl enable rc-local

创建/etc/rc.local

cat > /etc/rc.local << EOF
#!/bin/bash
echo "test rc.local " > /tmp/rctest.log
EOF

新增执行权限

chmod +x /etc/rc.local

借鉴学习:
https://www.centos.bz/2018/05/ubuntu-18-04-rc-local-systemd%E8%AE%BE%E7%BD%AE/
https://www.jianshu.com/p/79d24b4af4e5
https://linuxeye.com/463.html

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您必须启用 javascript 在这里查看验证码!

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据