Centos7开机启动服务或执行脚本

方法一:rc.local

  1. 由于在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要添加其可执行权chmod +x /etc/rc.d/rc.local
  2. 除此之外,还需要给需要执行的脚本添加可执行权限chmod +x /opt/script/test.sh
  3. /etc/rc.d/rc.local末尾追加/opt/script/test.sh即可

方法二:chkconfig

/etc/init.d是/etc/rc.d/init.d的软链接,可以通过ll命令查看,当Linux启动时,会寻找这些目录中的服务脚本,并根据脚本的运行级别确定不同的启动级别。

配置方法

  1. 将脚本移动到/etc/rc.d/init.d目录下mv /opt/script/test.sh /etc/rc.d/init.d
  2. 增加脚本的可执行权限chmod +x /etc/rc.d/init.d/test.sh
  3. 添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add test.sh
chkconfig test.sh on

原理补充

chkconfig及liunx运行级别

chkconfig启动脚本规范,在脚本开头加入下面内容

#!/bin/bash
# chkconfig:   2345 90 10
# description:  testservice

说明:

  1. chkonfig后面是启动级别和优先级
  2. description后面是服务描述如上面脚本意思是

上述配置的含义:服务必须在运行级2、3、4、5下被启动或关闭,启动的优先级是90(优先级范围是0-100,数字越大,优先级越低),停止的优先级是10
【注】:如果执行脚本开头不添加以上内容,则会导致提示service myservice does not support chkconfig

Linux启动优先级

运行级别就是操作系统当前正在运行的功能级别,这个级别从0到6代表着具有不同的功能。这些级别在/etc/inittab文件里指定,这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d目录下的文件,不同的运行级定义如下:

0:关机。为停机,机器关闭
1:单用户模式。就像Win9x下的安全模式类似
2:无网络支持的多用户模式。没有NFS支持
3:有网络支持的多用户模式。完整的多用户模式,是标准的运行级
4:保留,一般不用。在一些特殊情况下可以用它来做一些事情,例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
5:有网络支持有X-Window支持的多用户模式。就是X11,进到X Window系统了
6:重新引导系统,即重启。运行init 6机器就会重启

方法三:systemd

该方法因为在介绍systemctl时已经详细讲解过,不再赘述