认识Linux:/etc/init.d目录

尝试消除问题的工具

如果您使用Linux,则很可能听说过 初始化 目录。但是这个目录到底是做什么的?它最终会做一件事,但对整个系统却会做一件事,所以 初始化 非常重要。的 初始化 目录包含用于系统上各种服务的许多启动/停止脚本。一切都来自 轻松的x11常见 由此目录控制。当然,这并不是那么简单。

如果你看 /等等 目录,您将找到以下形式的目录 rc#.d (其中#是一个数字,表示特定的初始化级别-从0到6)。这些目录中的每个目录中都有许多其他控制进程的脚本。这些脚本将以“ K”或“ S”开头。所有“ K”脚本都在“ S”脚本之前运行。并且取决于脚本的位置,将确定脚本启动的时间。在目录之间,系统服务就像一台运转良好的机器一样协同工作。但是有时候,您需要干净地启动或停止进程,而无需使用kill或killall命令。那是 /etc/init.d 目录派上用场了。

现在,如果您使用的是Fedora之类的发行版,则可以在以下目录中找到此目录 /etc/rc.d/init.d 。无论位置如何,它都可以达到相同的目的。

为了控制中的任何脚本 初始化 手动,您必须具有root(或sudo)访问权限。每个脚本都将作为命令运行,并且命令的结构如下所示:

/etc/init.d/command选项

哪里 命令 是要运行的实际命令, 选项 可以是以下之一:

  • 开始
  • 重装
  • 重新开始
  • 力重装

大多数情况下,您会使用 开始,停止, 要么 重新开始。 因此,如果要停止网络,可以发出以下命令:

/etc/init.d/networking停止

或者,如果您对网络进行更改并需要重新启动它,则可以使用以下命令进行:

/etc/init.d/networking重新启动

此目录中一些更常见的初始化脚本是:

  • 联网
  • 桑巴舞
  • apache2
  • ftpd
  • sshd
  • 鸽舍
  • MySQL的

当然,目录中可能会有更常用的脚本-这取决于您安装的内容。上面的列表来自Ubuntu Server 8.10安装,因此标准的桌面安装将少一些网络类型的脚本。

但是/etc/rc.local呢?

我过去经常使用第三种选择。此选项是 /etc/rc.local 脚本。该文件在所有其他init级别脚本都运行之后运行,因此可以安全地放置要在启动时发出的各种命令。很多时候,我会在此脚本中放置诸如nfs之类的安装说明。这也是放置“疑难解答”脚本的好地方。例如,一旦我有一台由于某种原因而导致samba似乎不想启动的计算机。即使进行检查,以确保Samba守护程序已设置为在启动时初始化。因此,不用花我所有的时间在上面,而是简单地放置一行:

/etc/init.d/samba开始

在里面 /etc/rc.local 脚本和Samba就像一个魅力。最终我会回来解决这个问题。

最后的想法

Linux是灵活的。 Linux如此灵活,几乎不可避免地存在许多解决单个问题的方法。启动系统服务就是这样一个问题。借助 /etc/init.d 系统(以及 /etc/rc.local ),您可以放心,您的服务将开始。