• (转)Linux下/etc/rc.local与/etc/init.d的区别与联系


    Linux下/etc/rc.local与/etc/init.d的区别与联系  

    2012-10-13 20:14:52|  分类: Linux学习|字号 订阅

     
     
    1./etc/rc.local 
    这是使用者自定义开机启动程序,把需要开机自动运行的程序写在这个脚本里再完成 run level 3 的服务启动后,
    如果我还有其他的动作想要完成时,举例来说, 我还想要寄一封 mail 给某个系统管理帐号,通知他,系统刚刚
    重新开机完毕,那么, 是否应该要制作一个 shell script 放置在 /etc/rc.d/init.d/ 里面,然后再以连结方式
    连结到 /etc/rc.d/rc3.d/ 里面呢?呵呵!当然不需要!还记得上一小节提到的 /etc/rc.d/rc.local 吧?
    这个档案就可以执行您自己想要执行的系统指令了。像不像早期 DOS 年代的 autoexec.bat 与 config.sys 呢?
    也就是说,我有任何想要在开机时就进行的工作时,直接将他写入 /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以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里的脚本。
  • 相关阅读:
    py基础之模块与包
    py装饰器,生成器,迭代器
    py函数式编程
    py基础之列表生成式
    算法基础之递归算法
    Py基础之函数
    py基础之无序列表
    py基础之数据类型及基本语法
    jsp报错问题汇总
    mysql问题汇总
  • 原文地址:https://www.cnblogs.com/lihaiping/p/rclocal.html
Copyright © 2020-2023  润新知