Linux中 etc/init.d “服务"

/etc/init.d目录在Linux系统中可是大名鼎鼎。它只负责一件事情,但却涉及到全系统。它包含系统中各种服务的start/stop脚本,从acpid到x11-common,其重要性可见一斑。

init.d 初始化脚本称之为System V风格初始化,是System V系统传统之一,后来成为一些Unix系统的共同特性的源头。值得一提的是,在/etc目录下可能还包含rc#.d目录,这也是System V风格,#为数字0到6,为系统的运行级别runlevel。可见System V风格影响深远。

init.d目录下脚本的执行方式为

/etc/initi.d/command OPTION

command指服务的命令,比如bluetooth,networking,samba,ssh等等。OPTION指stop,start,reload,restart,force-reload。

比如重启SSH服务的命令为(执行这个目录下的脚本,需要root用户权限):

$ sudo /etc/init.d/ssh restart

Linux中/etc/init.d

在这个目录下的档案都是连结档,均指向到 /etc/rc.d/init.d 这个目录下。   Linux 启动时,运行一个叫做init 的程序,然后由它来启动后面的任务,包括多用户环境,网络等。  那么,到底什么是运行级呢?简单 的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1 到6 ,具有不同的功能。这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。   大多数的Linux 发行版本中,启动的是/etc/rc.d/init.d。这些脚本被ln 命令来连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)   例如/etc/rc.d/rc2.d 下面的S10network 就是连接到/etc/rc.d/init.d下的network 脚本的。  因此,我们可以知道,rc2.d 下面的文件就是和运行级2 有关的。   文件开头的S 代表start 就是启动服务的意思,后面的数字10 就是启动的顺序。例如,在同一个目录下,你还可以看到 S80postfix 这个文件,80 就是顺序在 10 以后,因为没有启动网络的情况下,启动postfix 是没有任何作用的。   再看一下 /etc/rc.d/rc3.d,可以看到文件S60nfslock,但是这个文件不存在于 /etc/rc.d/rc2.d 目录下。NFS 要用到这个文件,一般用在多用户环境下,所以放在rc3.d 目录下。  另外,在/etc/rc.d/rc2.d 还可以看到那些K 开头的文件,例如  /etc/rc.d/rc2.d/K45named ,K 代表 kill 。   标准的Linux运行级为3 或者5 ,如果是3 的话,系统就在多用户状态。如果是5的话,则是运行着X Window 系统。如果目前正在3或5,而你把运行级降低到2的话,init 就会执行 K45named 脚本。  不同的运行级定义如下:(可以参考Red Hat Linux 里面的/etc/inittab)  # 缺省的运行级,RHS 用到的级别如下:  # 0 - 停机(千万不要把initdefault 设置为0)  # 1 - 单用户模式   # 2 - 多用户,但是没有 NFS  # 3 - 完全多用户模式  # 4 - 没有用到  # 5 - X11   # 6 - 重新启动 (千万不要把initdefault 设置为6)  #   对各个运行级的详细解释:  0 为停机,机器关闭。   1 为单用户模式,就像Win9x 下的安全模式类似。  2 为多用户模式,但是没有NFS 支持。  3 为完整的多用户模式,是标准的运行级。   4 一般不用,在一些特殊情况下可以用它来做一些事情。   例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。  5 就是 X11 ,进到 X Window 系统了。  6 为重启,运行 init 6 机器就会重启。   不同的运行级有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root 口令,那么可以让机器启动进入单用户状态来设置。在启动后的 lilo 提示符下输入:  init=/bin/sh rw   就可以使机器进入运行级1 ,并把 root 文件系统挂为读写。他会跳过所有系统认证,让你使用passwd 程序来改变root口令,然后启动到一个新的运行级。

原文地址:https://www.cnblogs.com/liu-bei/p/3378301.html