简记Linux开机脚本的执行顺序与程序的运行级别

 2016年01月02日    128     声明


在Linux操作系统中,如果要将某个程序添加到开机启项时。你可以将其放到/etc/init.d目录,并使用chkconfig命令将其配置为系统服务。或者,简单的将其添加到rc.local开机启动文件中。本篇中,将简单整理Linux系统开机时各脚本程序的加载顺序,以便所需者选择适当的开机处理方式。


1. Linux开机顺序

任何使用Linux做为工作环境,或使用Linux做为服务器的朋友,都应该充分了解Linux系统开机时相关脚本及服务的加载顺序。Linux系统开机启动脚本有相关服务启动顺序如下:

  1. 加载内核
  2. 启动init(/etc/inittab)内核启动的第一个用户级别的进程,其pid始终为1,其它的开机启动脚本都是通过是通过这个进程来启动的。
  3. 执行/etc/rc.d/rc.sysinit这是init执行的第一个脚本,这个脚本主要工作是进行系统的初始化,如:设置系统字体、启动swapping、设置主机名、装载声卡模块等。
  4. 执行/etc/rc.d/rc*.d (rc0.d、rc1.d、rc2.d…rc6.d),这一步会运行各个运行级别的脚本。这些运行脚本是指通过chkconfig命令配置的开机启动各个级别所要要执行的程序。
  5. 执行/etc/rc.d/rc.local,在各级别服务启动后,会执行该文件,如果不需要把所要执行的脚本配置为系统服务,也可以把所需执行的命令写到这个文件中,相比来说更为简单方便。
  6. /sbin/mingetty,等待用户登录


2. Linux程序的运行级别

使用chkconfig配置系统服务时,需要设置程序的运行级别。Linux程序的运行级别可以理解为操作系统当前正在运行的程序的级别,程序的运行级别有以下0~6共7个运行级别:

  1. # 0表示停机,如果把initdefault运行级别设置为0将导致不能开机。
  2. # 1表示单用户模式。
  3. # 2表示多用户模式,但没有 NFS。
  4. # 3表示多用户模式,标准的运行级。
  5. # 4系统未使用,保留级别。
  6. # 5表示X11 多用户图形模式(xwindow),登陆后进入GUI图形界面。
  7. # 6表示系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动。

Linux的运行级别被定义在/etc/inittab文件中。这个文件是init程序加载的主要文件,其最先运行的服务放在/etc/rc.d目录下的文件。但有很多Linux发行版本中,启动脚本也可能位于/etc/rc.d/init.d中的。这些脚本一般都是一些软链接,其最终被链接到/etc/rc.d/rc*.d目录。