`

关于/etc/rc.local以及/etc/init.d (转 )

阅读更多

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里的脚本。

 

 

linux /etc/rc.d/目录的详解

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

redhat的启动方式和执行次序是: 
加载内核 
执行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主要做在各个运行模式中相同的初始化工作,包括: 
调入keymap以及系统字体 
启动swapping 
设置主机名 
设置NIS域名 
检查(fsck)并mount文件系统 
打开quota 
装载声卡模块 
设置系统时钟 
等等。


/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做为初始化脚本中 
的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。

 

分享到:
评论

相关推荐

    ubuntu系统中/etc/rc.local和/etc/init.d/rc.local的区别详解

    分别是/etc/rc.local和/etc/init.d/rc.local。可以看一下两个文件的内容找到他俩的关系: /etc/init.d/rc.local #! /bin/sh ### BEGIN INIT INFO # Provides: rc.local # Required-Start: $all # Required-Stop: ...

    Nginx通过/etc/init.d/nginx方式启停【nginx配置文件】

    vi /etc/init.d/nginx 修改nginx后 chmod +x /etc/init.d/nginx /sbin/chkconfig nginx on sudo /sbin/chkconfig --list nginx /etc/init.d/nginx start

    linux自启动设置.txt

    /etc/rc.d/init.d 目录 1. 关于linux的启动 2. 关于rc.d 3. 启动脚本示例 4. 关于rc.local 5. 关于bash启动脚本 6. 关于开机程序的自动启动 1. 关于linux的启动 init是所有进程的顶层 init读取/etc/...

    解决centos7 开机/etc/rc.local 不执行的问题

    最近发现centos7 的/etc/rc.local不会开机执行,于是认真看了下/etc/rc.local文件内容的就发现了问题的原因了 #!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create...

    thin-rc.d:简单的FreeBSD rc脚本精简

    '/etc/rc.d/thin' : '/etc/init.d/thin' 薄的rubygem-thin也不提供rc.d脚本。安装下载rc.d脚本,使其可执行,将其放置在/usr/local/etc/rc.d/ ,获利$$。 mkdir -p /usr/local/etc/rc.dcd /usr/local/etc/rc.d/...

    Linux系统启动过程

    Linux开机过程: (1) 加载BIOS硬件信息,并取得第一个开机装置代号 (2) 读取第一个开机...(8) Init执行/etc/rc.d/rc.local档案 (9) 执行/bin/login程序,并等待使用者登入 (10) 登入之后开始以shell控管主机

    LNMP架构安装

    chmod a+x /etc/rc.d/init.d/mysqld chkconfig --add mysqld ln -s /usr/local/mysql/bin/* /usr/local/bin/ ln -s /usr/local/mysql/lib/mysql/* /usr/lib ln -s /usr/local/mysql/include/mysql/* /usr/include/ ...

    BBS 负载均衡文档2009-09-04.doc

    # cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chmod +x /etc/rc.d/init.d/mysqld # chkconfig --add mysqld #mysql集群设置(192.168.0.109、192.168.0.93两台mysql做集群,还需第三台机器192.168.0...

    Centos7.3开机自动启动或执行指定命令操作

    在centos7中,/etc/rc.d/rc.local文件的权限被降低了,没有执行权限,需要给它添加可执行权限。 chmod +x /etc/rc.d/rc.local ...2、建立一个软连接到/etc/rc.d/init.d目录下 ln -s /springboot/biz /etc/

    CentOS 7.0编译安装cmake和mysql安装包

    cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动 chmod 755 /etc/init.d/mysqld #增加执行权限 chkconfig mysqld on #加入开机启动 vi /etc/rc.d/init.d/mysqld #编辑 basedir=/...

    如何在Linux实现自动运行程序?

    1、开机启动时  Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。  init根据配置文件继续引导过程,启动其它进程。...  编辑 /etc/rc.d/rc.local 文件,在文件末加上一行xinit或sta

    linux下启动mysql服务

    启动是什么 /rc.d/init.d/ start 这很简单,但是后来越学越多,系统自带的 mysql,有的是版本太低,有的是与 自己想要装的web服务需要的低版本的mysql 后来自己学着以tar的方式安装 mysql,我的mysql装在/usr/...

    nginx配置经典

    # cp /usr/local/mysql5.6/support-files/mysql.server /etc/rc.d/init.d/mysql # cp /usr/local/mysql5.6/support-files/my-default.cnf /etc/my.cnf # chkconfig --add mysql && chkconfig mysql on

    SUSE Linux下开机自动运行脚本命令的方法

    以openSUSE 11和10 sp2启动文件的设置为例,开机设置程序自动执行

    rpi_fan_control:使用python进行散热控制

    Rpi中的风扇控制如何安装须藤MV fan_control_auto.py / usr / local / bin / 须藤chmod + x /user/local/bin/fan_control_auto.py开机执行须藤MV fan_control_auto.sh /etc/init.d/ 须藤chmod + x /etc/init.d/fan_...

    iotclnt:物联网客户端是一个测试项目,用于准备树莓设备作为独立单元运行

    安装所有节点依赖cd /home/pi/iotclnt/ 安装第 6 步:将守护程序脚本复制到 /etc/init.d cp /home/pi/iotclnt/iotclnt /etc/init.d cd /etc/init.d chmod +x iotclnt第 7 步:将守护进程添加到 rc.local 须藤纳米 /...

    Linux下MYSQL每天完全备份

    利用crontab,系统每天定时备份mysql数据库 利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。 1、创建保存备份文件的路径/mysqldata ...# /etc/rc.d/init.d/crond restart

    enable-nginx

    #!/bin/bash nginxd=/usr/local/nginx/sbin/nginx nginx_config=/usr/local/nginx/conf/nginx.conf nginx_pid=/usr/local/nginx/logs/nginx.pid ... /etc/rc.d/init.d/functions . /etc/sysconfig/network

    CentOS6.9下NFS服务安装配置教程

    服务器环境:CentOS6.9 Linux 2.6.32-696.el6.x86_64 安装NFS服务 nfs客户端和服务端都只需要安装nfs-utils包即可,并且yum安装时会连带安装rpcbind服务 # yum -y install nfs-utils .../etc/init.d/nfs sta

Global site tag (gtag.js) - Google Analytics