网站首页 文章专栏 调教ubuntu16.04 rc.local 开机启动
调教ubuntu16.04 rc.local 开机启动
编辑时间:2017年4月22日 11:08 作者:赵彦昌 浏览量:10859
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service

本文参考:http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html


因自己水平有限,也一直在学习状态。学海无涯,永远要保持态度上的谦虚,和内心的自信,不然,在学习 新东西的时候,很容易被一些模糊的概念所打倒。

    今天,晴,天气不错,心情很好。突然想起来一个自己感觉比较尴尬的问题。为什么这么说呢?因为之段时间。公司要上一个新部署系统(本人和领导一起写的,github在这里),在测试部署系统时,为了不影响测试人员和开发人员的正常使用,所以虽装一个服务器,系统使用ubuntu 16.04 ,安装系统过程省略......

    当我准备想让系统开机自启动一些脚本时,竟然发现没有 /etc/rc.local 文件,没有,真没有,你并没有看错,看错,看错!

    


    百度,google, 找到有些办法不错,故拿来个人感觉最优的办法,记录如下:


因ubuntu 16 开始使用systemd 代替initd 做系统服务管理。所以才没有的 /etc/rc.local

如果 想 按之前的使用习惯,那我们就需要做一个服务名为:rc.local.service  把此服务的启动脚本放到 /etc/rc.local  ,但要切记文件第一行

#!/bin/bash 

不要会报错,而不生效,并要给它执行权限 chmod +x /etc/rc.local

详细操作如下:

    

vi /lib/systemd/system/rc-local.service
[Unit]  
Description=/etc/rc.local Compatibility  
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
#保存退出
将此文件软链接到 /etc/systemd/system/rc-local.service
ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
touch /etc/rc.local
chmod +x /etc/rc.local


之此这里,你就开启了调教ubuntu 16 的第一步

最后,再次提醒,/etc/rc.local 第一行一定要输入 #!/bin/bash 不要问我为什么,因为我的活雷锋,好道友




来说两句吧
最新评论
  • ckjiaoc
    ckjiaoc

    我现在一旦用sudo 执行我的脚本,程序就会出错,而不用sudo执行脚本就没有问题,sudo的时候程序报未找到~/.config目录下的***.bin文件,别说开机启动了,开机启动一定报错,实在不知道怎么回事


    赵彦昌博客
    赵彦昌博客回复
    可能跟环境变量(PATH)有关。 直接用sudo 执行你的脚本,会报错吗?你执行的脚本有用到 ~/.config/***.bin文件吗?
    2019-01-04 16:05
  • aidenzdly

    大佬您好,我现在也遇到了在/etc/rc.local中执行脚本,服务没有启动的问题,按照您的方法,开头我将/bin/sh改为了/bin/bash,然后重新启动,发现服务还是没有起来,请教一下这是为什么?

    我的qq:  826577863,方便的话能加好友沟通一下么。万分感谢