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 [email protected]

设置可执行权限:

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

注意我这个文件里引用都是/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

手动分割

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

你可能感兴趣的:(linux,centos7,日常小记,linux,centos,运维)