linux|linux centos7 开机自动启动执行脚本、命令 无效——解决方式

>问题描述 前段时间自己弄了个虚拟机,OS centos7,在设置开机自动执行脚本时,一直不生效。经过一天摸索,总于成功。。。。
中间设置无效时,我也在网上搜了一下,都是说设置/etc/rc.d/rc.local并赋予可执行权限即可。
其实不然,还要执行一下开机启动服务的命令:systemctl enable rc-local.service
>步骤(以开机执行ssh命令为例) 1、脚本(路径:/root/ssh_proxy.sh ):

#!/bin/bash #注意:如果执行这个脚本需要免密登录192.168.42.99这台机器,或者用expect从新写脚本,实现自动输入密码。 ssh root@192.168.42.99

设置可执行权限:
chmod +x/root/ssh_proxy.sh

2、修改rc.local权限:
chmod +x /etc/rc.d/rc.local

3、在rc.local最后一行增加:
/root/ssh_proxy.sh

4、启动服务:
#rc-local.service位于/usr/lib/systemd/system #设置开机启动(设置开机启动执行这个就行) systemctl enable rc-local.service #启动服务——执行后就生效 systemctl start rc-local.service #显示服务状态——如果脚本执行失败,这条命令可以帮助你看到脚本的报错信息 systemctl status rc-local.service

执行到这里就已经配置成功了,其实就这么简单。
6、附加说明:
看一下 /usr/lib/systemd/system/rc-local.service 内容:
[Unit] Description=/etc/rc.d/rc.local Compatibility ConditionFileIsExecutable=/etc/rc.d/rc.local After=network.target[Service] Type=forking ExecStart=/etc/rc.d/rc.local start TimeoutSec=0 RemainAfterExit=yes

【linux|linux centos7 开机自动启动执行脚本、命令 无效——解决方式】注意我这个文件里引用都是/etc/rc.d/rc.local 而非 /etc/rc.local.
ll -ah /etc/rc.local #lrwxrwxrwx. 1 root root 13 7月26 19:50 /etc/rc.local -> rc.d/rc.local

手动分割
  • 注:个人博客所有内容皆为工作中遇到的问题,并不代表所有情况
  • 转载请注明出处

    推荐阅读