Ubuntu18.04设置开机自启动脚本

目录

一、开机自启动脚本

二、init管理系统

三、rc.local文件

四、systemctl enable 报错问题


一、开机自启动脚本

        在应用中我们可能希望某一文件在开机的时候系统自行启动,而不用人为的去启动这些文件,为用户提供便利性。一般自启动脚本会应用在系统相关的配置文件中,当然用户也可以自定义自启动脚本让系统开机时自动运行此脚本。

二、init管理系统

        Ubuntu 16.10开始不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。所以,ubuntu18.04默认不带/etc/rc.local文件,我们需要通过配置来让rc.local.service生效。

三、rc.local文件

        在/etc目录下创建一个rc.local的脚本文件,此脚本作为开机自启动脚本文件,以后想让系统在开机的时候自行运行某一功能或者执行某一可执行文件时,可以往rc.local脚本中添加内容即可。

1.执行命令如下:

sudo vim /etc/rc.local

2.往rc.local文件中添加开机自启动运行的内容

#!/bin/sh -e

sudo mkdir /usr/local/temp
sudo echo "abcdefg" > /usr/local/test.log
 
exit 0

3.给rc.local可执行权限,这里我们给最大权限

sudo chmod 777 rc.local

四、systemctl enable 报错问题

The unit files have no installation config (WantedBy, RequiredBy, Also, Alias
settings in the [Install] section, and DefaultInstance for template units).
This means they are not meant to be enabled using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
   .wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
   a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
   D-Bus, udev, scripted systemctl call, ...).
4) In case of template units, the unit is meant to be enabled with some
   instance name specified.

tips:提示的大概意思为没有Install字段

1.打开/etc/systemd/system/rc-local.service文件,如果没有自行创建即可

sudo vim /etc/systemd/system/rc-local.service

内容如下:

2.无Install字段,添加install字段

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

3.完整内容如下:

4.给rc-local.service可执行权限

sudo chmod 777 /etc/systemd/system/rc-local.service

 5.进入/lib/systemd/system/rc-local.service文件添加相同install字段

sudo vim /lib/systemd/system/rc-local.service

6.添加install字段

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

7.完整内容如下

7.给rc-local.service可执行权限

sudo chmod 777 /lib/systemd/system/rc-local.service

8.将 /lib/systemd/system/rc-local.service 链接到 /etc/systemd/system/ 目录下面来

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

9.启动systemctl服务

systemctl start rc-local
systemctl enable rc-local

10.查看状态 

systemctl status rc-local

tips:没有出现报错信息证明自启脚本已生效:

 五、重启ubuntu18.04

1.自启脚本内容如下

#!/bin/sh -e

sudo mkdir /usr/local/temp
sudo echo "abcdefg" > /usr/local/test.log
 
exit 0

2.运行结果如下 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值