linux init.d目录与rc.local脚本.md

  1. /etc/init.d (系统级别)
  2. /etc/rc.local(系统启动完成后)

/etc/init.d (系统级别)

init.d目录包含许多系统各种服务的启动和停止脚本。它控制着所有从acpid到x11-common的各种事务。当然,init.d远远没有这么简单。
(注:acpid 是linux操作系统新型电源管理标准 ;X11也叫做X Window系统,X Window系统 (X11或X)是一种位图显示的 视窗系统 。它是在 Unix 和 类Unix 操作系统 ,以及 OpenVMS 上建立图形用户界面 的标准工具包和协议,并可用于几乎已有的现代操作系统)。

当你查看/etc目录时,会发现许多rc#.d 形式存在的目录(这里#代表一个指定的初始化级别,范围是0~6)。
在这些目录之下,包含了许多对进程进行控制的脚本。这些脚本以”K”开头或者以”S”开头。以K开头的脚本运行在以S开头的脚本之前。
这些脚本放置的地方,将决定这些脚本什么时候开始运行。在这些目录之间,系统服务一起合作,就像运行状况良好的机器一样。然而,有时候你希望能在不使用kill 或killall 命令的情况下,能干净的启动或杀死一个进程。这时/etc/init.d能够派上用场了

可以找到这个目录:/etc/rc.d/init.d。实际上无论init.d放在什么地方,它都发挥着相同的作用。

为了能够使用init.d目录下的脚本,你需要有root权限或sudo权限。每个脚本都将被作为一个命令运行,该命令的结构大致如下所示:

  • 0:关机(不要设置这个!)
  • 1:单用户(类似于windows操作系统的安全模式)
  • 2:多用户状态没有网络服务
  • 3:多用户状态由网络服务(在做开发时,通常设置成这个启动级别,直接进入到命令行的界面)
  • 4:系统未使用保留给用户(不要设置这个!)
  • 5:图形界面(这是linux默认的启动级别,直接进入图形界面)
  • 6:系统重启(不要设置这个!)
/etc/init.d/command 选项

comand是实际运行的命令,选项可以有如下几种:

  • start
  • stop
  • reload
  • restart
  • force-reload

大多数的情况下,你会使用start,stop,restart选项。例如,如果你想关闭网络,你可以使用如下形式的命令:

/etc/init.d/networking stop

/etc/rc.local(系统启动完成后)

rc.local 脚本是在系统初始化级别脚本运行之后再执行的,因此可以安全地在里面添加你想在系统启动之后执行的脚本。常见的情况是你可以再里面添加nfs挂载/mount脚本。例如开机启动 nginx

/etc/init.d/nginx start

仅供参考
目录