linux下/etc/rc.local与/etc/init.d用法教程

发布时间:2020-02-15编辑:脚本学堂
有关rc.local文件与init.d目录的用法,rc.local文件中可以设置linux开机启动脚本,init.d目录中存放着一些启动脚本,用于自动启动服务,需要的朋友参考下。

/etc/rc.local与/etc/init.d用法

1、/etc/rc.local文件(linux rc.local自启动服务linux rc.local自启动详解

在此文件中可能设置linux开机启动的服务脚本,开机自动启动相关程序与服务。

任何想要在开机时就进行的工作时,直接将他写入 /etc/rc.local,开机时会自动载入。
可以将shell script 完整档名写入 /etc/rc.d/rc.local,开机就会自动加载并执行shell script脚本了。

在linux启动最后阶段,系统会执行保存在rc.local文件中的命令。
和windows中“启动”菜单有点像,但是设置麻烦些,功能更强大。

使用情况:
1)oracle等服务器的启动:如果需要oracle随系统一起启动,可以去看看/etc/oratab这个文件。

2)静态路由: 对于需要增加大量的不是本网段的路由时,很多人喜欢在/etc/rc.d/rc.local里添加类似
route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.224.0.251
route add -host 192.168.100.1  gw 10.224.0.251

2、/etc/init.d目录的作用 linux下/etc/init.d目录与/etc/rc.local启动脚本Linux下service命令与/etc/init.d/的关系解析

这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本。系统在安装时装了好多rpm包,这里面就有很多对应的脚本。执行这些脚本可以用来启动,停止,重启这些服务。举个例子来说,如果你要重新启动 sendmail 的话,而且你的 sendmail 是以 rpm 来安装的,那么下达 /etc/rc.d/init.d/sendmail restart 就可以直接启动 sendmail 啰!

/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册表,在系统启动的时候执行。程序运行到这里(init进程读取了运行级别), 是该运行init.d里的脚本了,但是并不是直接运行,而是有选择的因为系统并不需要启动所有的服务。

那么,系统是如何选择哪些需要启动哪些不要呢?这时刚才说的运行级别就起作用了。在决定了系统启动的run level之后,/etc/rc.d/rc这个脚本先执行。在RH9和FC7的源码中它都是一上来就check_runlevel()(虽然实现的代码不一样,也大同小异),知道了运行级别之后,对于每一个运行级别,在rc.d下都有一个子目录分别是rc0.d,rc1.d ….. rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正干活到init.d里的脚本。
 
linux /etc/rc.d/目录详解

rc.d的内容如下:
init.d/ :各种服务器和程序的二进制文件存放目录。
rcx.d/: 各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接。具体的后边叙述。
还有三个脚本:rc.sysinit, rc, rc.local

redhat的启动方式和执行次序是:
1、加载内核
2、执行init程序
 

/etc/rc.d/rc.sysinit # 由init执行的第一个脚本
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式
/etc/rc.d/rc.local
/sbin/mingetty # 等待用户登录

在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
1、调入keymap以及系统字体
2、启动swapping
3、设置主机名
4、设置NIS域名
5、检查(fsck)并mount文件系统
6、打开quota
7、装载声卡模块
8、设置系统时钟

/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx 从小到大来执行。

例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用 /etc/rc.d/rc3.d/下的脚本。

注意,Redhat中运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,可以在此文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。