网站首页 文章专栏 调教ubuntu16.04 rc.local 开机启动
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 文件,没有,真没有,你并没有看错,看错,看错!
因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 不要问我为什么,因为我的活雷锋,好道友
大佬您好,我现在也遇到了在/etc/rc.local中执行脚本,服务没有启动的问题,按照您的方法,开头我将/bin/sh改为了/bin/bash,然后重新启动,发现服务还是没有起来,请教一下这是为什么?
我的qq: 826577863,方便的话能加好友沟通一下么。万分感谢
我现在一旦用sudo 执行我的脚本,程序就会出错,而不用sudo执行脚本就没有问题,sudo的时候程序报未找到~/.config目录下的***.bin文件,别说开机启动了,开机启动一定报错,实在不知道怎么回事
2019-01-4 16:05回复