`
zzc1684
  • 浏览: 1229344 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

/etc/rc.d/init.d和/etc/init.d 联系区别

阅读更多

$ ls -ld /etc/rc.d
drwxr-xr-x 10 root root 352  2月 13 13:38 /etc/rc.d/
$ ls -ld /etc/init.d
lrwxrwxrwx 1 root root 11  2月 13 13:38 /etc/init.d -> rc.d/init.d/

一个是另外一个的软链接吧

etc/rc.d/init.d里面包含了一些脚本,这些脚本供INIT进程(也就是1号进程)在系统从初始化的时候按照该进程获取的开机运行等级,有选择的运行init.d里的脚本。这些一般是系统安装好的软件

运行级别,决定了系统启动之后运行于什么级别。这个级别从0到6 ,具有不同的功能。停机的级别为0,重新启动的级别为6。
它的值由init进程上来去读取/etc/目录下inittab文件中initdefault id值获得。
一般的linux系统X11图形界面的运行级别是5。

通常所说的rc就是 run control的意思。
看 /etc/inittab  
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
红色的部分指定 运行级别 ,5 是x11模式,就是进图形界面的,1是字符界面的。
各个级别对应的调用 /etc/rc.d/rcX.d/里面的命令。
如级别5就调用 /etc/rc.d/rc5.d/里的命令,里面S打头的代表start时候运行的命令K打头的代表shutdown的时候运行的命令。
数字小的先于数字大的执行, 如S01sysstat在S05kudzu前面执行。
/etc/init.d里的命令应该只是 /etc/rc.d/rcX.d/里的命令用到的链接。


转自 http://hi.baidu.com/fwind1/blog/item/24bf6e0279c6a00e738da5c1.html

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

init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束。

最后自己补充一些:

1. 许多网络服务都由超级服务/etc/rc.d/init.d/xinetd启动,这些服务的配置文件在/etc/xinetd.d/目录下,

如telnet就是由xinetd启动的,其配置文件如下(fc7)

1 # default: on
2 # description: The telnet server serves telnet sessions; it uses \
3 #   unencrypted username/password pairs for authentication.
4 service telnet
5 {
6     flags       = REUSE
7     socket_type = stream
8     wait        = no
9     user        = root
10     server      = /usr/sbin/in.telnetd
11     log_on_failure += USERID
12     disable     = no
13 }
修改配置文件以后,重启xinetd服务即可.

2. 除了直接调用脚本外(如/etc/rc.d/init.d/xinetd),还可以用service命令来控制init.d目录下的服务,

     如 service xinetd restart,

转自 http://hi.baidu.com/ueszx/blog/item/93d4e3f0de6d02ce7831aa61.html

/etc/rc.d/与/etc/rc.d/init.d的关系 (转)

在这里先解释一下init.d里面放的都是什么东西。这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本。系统在安装时装了好多rpm包,这里面就有很多对应的脚本。执行这些脚本可以用来启动,停止,重启这些服务。
前面说到,/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册表,在系统启动的时候执行。程序运行到这里(init进程读取了运行级别),相信从命名的角度大家也能猜到该运行/etc/rc.d/init.d里面的脚本了,不然它为什么也叫init(.d)呢是吧。没错,是该运行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里的脚本。

到这里,估计大家可能都比较清楚了,我开始也以为是这样的。可是后来我仔细看过和比较这些链接文件和init.d里真正被执行的脚本的文件名之后,一直有几个问题没弄明白。借着写这个文章的机会,我做了一些功课,总算是大概解开了那些疑惑。
1、这些链接文件前面为什么会带一个Kxx或者Sxx呢?
    是这样的,带K的表示停止(Kill)一个服务,S表示开启(Start)的意思
2、K和S后面带的数字呢?干什么用的
    这个我开始的时候还以为是排列起来好看或者数数用呢(是不是很幼稚?)。后来发现不是的。它的作用是用来排序,就是决定这些脚本执行的顺序,数值小的先执行,数值大的后执行。很多时候这些执行顺序是很重要的,比如要启动Apache服务,就必须先配置网络接口,不然一个没有IP的机子来启动http服务那岂不是很搞笑。。。
3、无意中我发现同一个服务带S的和带K的链接到init.d之后是同一个脚本。我就纳闷了,为什么会是执行同一个脚本呢?
    这个时候真是S和K的妙用了,原来S和K并不止是用来看起来分的清楚而已。S给和K还分别给init.d下面的脚本传递了start和stop的参数。哦,是这样的(焕然大悟的样子,呵呵)!这时我才想起来原来曾经无数用过的/etc/rc.d/init.d/network restart命令。原来传S时相当于执行了/etc/rc.d/init.d/xxx start这条命令,当然K就相当于/etc/rc.d/init.d/xxx stop了。

补充:也可以修改rc.local达到自启动的目的,但是rc.local是最后执行自启动配置文件。

转自 http://blog.sina.com.cn/s/blog_4b0a626701009mak.html

转自: http://blog.163.com/fan_yishan/blog/static/4769221320117151727450/

分享到:
评论

相关推荐

    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上MongoDB启动脚本错误---env: /etc/init.d/mongodb : no such file or directory

    然后,通过`chmod +x /etc/init.d/mongodb`赋予执行权限,并用`update-rc.d mongodb defaults`(Debian/Ubuntu)或`chkconfig --add mongodb`(CentOS/RHEL)将脚本添加到启动服务列表。 7. **日志分析** 在解决这...

    rc.local自启动学习.doc

    ln -sf ../init.d/apache ../rc0.d/K28apache ln -sf ../init.d/apache ../rc1.d/K28apache ln -sf ../init.d/apache ../rc2.d/K28apache ln -sf ../init.d/apache ../rc3.d/S32apache ln -sf ../init.d/apache ../...

    linux etc/rc.d 系统启动服务详解

    在Linux操作系统中,`/etc/rc.d` 是一个非常重要的目录,它包含了系统启动时运行的各种脚本和服务配置。这个目录是基于传统的init系统的一部分,主要用于管理系统的启动、停止、重启以及服务的控制。让我们深入了解...

    linux init.d目录理解

    每个服务都有一个对应的脚本文件,例如 `/etc/rc.d/init.d/apache` 用于管理 Apache Web 服务器的启动和停止。 2. **/etc/rc.d/rcN.d/**:对于每一个运行级别 N(N 为 0-6),都有一个对应的子目录 `/etc/rc.d/rcN...

    linux自启动设置.txt

    ln -sf ../init.d/apached ../rc3.d/S32apached ln -sf ../init.d/apached ../rc4.d/S32apached ln -sf ../init.d/apached ../rc5.d/S32apached ln -sf ../init.d/apached ../rc6.d/K28apached ``` 这里,`S32`表示...

    关于新版CenterOS7配置redis出现iptables错误的解决方法

    关于新版CenterOS7配置redis出现redisiptables错误的解决方法, 排除/etc/rc.d/init.d/iptables: No such file or directory 错误原因 , CentoOS7下配置redis并将端口通过防火墙解决方法;

    ubuntu 8.0.4 server 安装oracle10.2成功

    sudo ln -s /etc/init.d /etc/rc.d/init.d ``` #### 七、设置系统参数 为了优化系统性能,需要调整一些关键的系统参数。 1. 编辑`/etc/sysctl.conf`文件: ```bash fs.file-max = 65536 kernel.shmall = ...

    linux自启动设置方法

    ln -sf ../init.d/apache ../rc3.d/S32apache && ln -sf ../init.d/apache ../rc4.d/S32apache && ln -sf ../init.d/apache ../rc5.d/S32apache && ln -sf ../init.d/apache ../rc6.d/K28apache ``` #### 四、rc....

    删除 rac 中的crs

    - 删除 `/etc/rc2.d/K96init.crs`、`/etc/rc2.d/S96init.crs`、`/etc/rc3.d/K96init.crs`、`/etc/rc3.d/S96init.crs`、`/etc/rc5.d/K96init.crs`、`/etc/rc5.d/S96init.crs`。 - 删除 `/etc/oracle/scls_scr` ...

    crs删除方法

    - 删除启动控制脚本:`rm /etc/rc.d/rc2.d/S96init.crs` - 删除目录:`rm -rf /etc/oracle/scls_scr` ### 3. 其他注意事项 - 在执行上述步骤之前,请确保备份了所有相关文件和配置。 - 如果使用了其他非标准位置...

    linux,AIX,HP-UNIX彻底删除crs

    - `rm /etc/rc.d/rc2.d/K96init.crs` - `rm /etc/rc.d/rc2.d/S96init.crs` - `rm -rf /etc/oracle/scls_scr` - `rm -rf /etc/oracle/oprocd` - `rm /etc/inittab.crs` - `cp /etc/inittab.orig /etc/inittab` ...

    Centos7.6/7.9系统安装DELL OMSA说明

    /etc/init.d/dataeng start 加入到开机自启动: chkconfig dataeng on 或者: echo '/opt/dell/srvadmin/sbin/srvadmin-services.sh start' &gt;&gt; /etc/rc.local 七、使用 OMSA 使用浏览器登录以下地址: ...

    树莓派远程迅雷启动脚本

    1. sudo nano /etc/init.d/xunlei 2. 拷贝此脚本 过后粘贴 3. sudo chmod 755 /etc/init.d/ 4. sudo /etc/init.d/xunlei start //测试脚本 激活远程迅雷 5. sudo /etc/init.d/xunlei stop //测试脚本 关闭远程迅雷 6...

    Linux修改mysql数据目录.doc

    MySQL 启动脚本位于 /etc/rc.d/init.d/mysql 目录下,该脚本负责启动和停止 MySQL 服务。在修改数据目录时,需要编辑该文件,将数据目录路径修改为新的路径。 结语 修改 MySQL 数据目录需要遵循一定的步骤,包括...

    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操作系统:FTP服务的安装与启动.pptx

    service vsftpd start 或 /etc/rc.d/init.d/vsftpd start 2.关闭vsftpd。 service vsftpd stop 或 /etc/rc.d/init.d/vsftpd stop 3.vsftpd重新启动 service vsftpd restart 或 /etc/rc.d/init.d/vsftpd restart 4...

Global site tag (gtag.js) - Google Analytics