1、 备份 /lib/systemd/system/rc-local.service文件
# 进入文件所在路径
cd /lib/systemd/system
# 备份文件的路径自己需要记住
cp rc-local.service /rc-local.service
2、 编辑 /lib/systemd/system/rc-local.service文件
# 编辑文件
vim rc-local.service
# 在该文件末尾添加以下内容
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
添加完成后,按“Esc”键退出文本编辑模式,再输入“:wq”保存退出。
3、 创建/etc/ rc.local 文件,并配置脚本
# 创建文件
touch /etc/rc.local
# 编辑文件
vim /etc/rc.local
# 添加以下内容
#!/bin/bash -e
exit 0
添加完成后,按“Esc”键退出文本编辑模式,再输入“:wq”保存退出。
【注意】
1)如果/etc/rc.local文件里不添加“#!/bin/sh -e”和“exit 0”这两个参数,则rc.local服务会启动不了并出现报错,甚至可能开不了机。
2)如果需要在/etc/rc.local文件中添加脚本,则在该文件“exit 0”参数前一行添加。
3)里面其他信息是我自己编写的一个重启脚本,不需要照写
5、修改/etc/rc.local文件的权限
以上步骤完成后,需要修改/etc/rc.local配置文件的权限为777:
chmod 777 /etc/rc.local
6、加载rc-local服务并设置该服务开机自启
systemctl daemon-reload
systemctl start rc-local.service
systemctl enable rc-local.service
【注意】在启动rc-local服务时,若出现以下弹窗提示,点击该弹窗提示中“允许”按钮即可。
7、设置/lib/systemd/system/rc-local.service链接到/etc/systemd/system 文件下
ln -s /lib/systemd/system/rc-local.service /etc/systemd/system
9、问题解决
重启系统后,在终端执行systemctl status rc-local.service命令查看到rc-local服务未启动,如下图所示:
此时,在终端执行systemctl restart rc-local.service命令手动重启rc-local服务后,恢复正常。原因是因为系统开启了麒麟安全管控模块(kysec)。
手动启动rc-local服务时会弹出“麒麟安全授权认证”的提示,点击该弹窗提示中“允许”按钮后,若不生效,则可以在在安全中心里添加/etc/rc.local文件列表或者直接关闭应用程序执行控制使其永久生效即可。
在安全中心里添加/etc/rc.local文件列表,操作步骤如下:
步骤一:点击“开始菜单->设置->安全与更新->安全中心”,打开安全中心页面。
步骤二:在安全中心页面,点击“应用保护”,再点击“高级配置”。
步骤三:在弹出的“高级配置”窗口,点击“添加”按钮,选择rc.local文件所在的目录,即“/etc”,再在文件名称处输入“rc.local”,然后点击“打开”即可。因为我已经重启过然后系统自动给增加上了。
关闭应用程序执行控制,操作步骤如下:
步骤一:回到之前“应用保护”界面,在该页面应用程序执行控制处,选择“关闭”后,重启系统生效即可。