目录
一、开机自启动脚本
二、init管理系统
三、rc.local文件
四、systemctl enable 报错问题
在应用中我们可能希望某一文件在开机的时候系统自行启动,而不用人为的去启动这些文件,为用户提供便利性。一般自启动脚本会应用在系统相关的配置文件中,当然用户也可以自定义自启动脚本让系统开机时自动运行此脚本。
Ubuntu 16.10开始不再使用initd管理系统,改用systemd,包括用systemctl命令来替换了service和chkconfig的功能。所以,ubuntu18.04默认不带/etc/rc.local文件,我们需要通过配置来让rc.local.service生效。
在/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
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.运行结果如下