一、linux系统启动的过程及顺序:

  * 计算机加电,并调用bois 设置

  * bois 调用硬盘主引导记录 mbr中的grub引导器

  * grub 引导器将调用内核,进行硬件检测与初始化

  * 内核将调用linux 中的第一个进程init 进程

  * init进程称为linux系统的父进程,即由该进程调用linux系统中的其它所有的子进程、

  * 最终提示输入用户名与密码、

  二、init 进程介绍:

  * linux中的init进程,通过ps -e命令查看后,其进程编号为1 ,表示该进程是第一个启动的进程、

  linux进程是由linux的内核调用、

  * linux系统中的其它进程,均要求由init进程调用,因此称init进程为父进程、

  * linux进程其它要要按照对应的配置文件进行运行、

  其它对应的配置文件为 /etc/inittab

  三、inittab配置文件的介绍:

  1、init 进程的配置文件位置

  /etc/inittab

  2、linux系统的不同级别及介绍:

  系统中共存在七个级别,分别是:级别 1 2 3 4 5 6 0

  级别 0 --进入该级别,系统即关闭所有的程序,并断开电源 [关机]

  级别 1 --进入该级别 只允许root进入,不支持网络,该级别用于root用户进行系统维护、

  级别 2 --linux的纯字符界面模式,不支持网络,但支持多个用户在当前系统中登录、

  级别 3 --linux的纯字符界面模式,支持网络,支持多用户登录,linux系统的各种服务器,通常均

  运行于该级别下、

  级别 4 --linux系统未对该级别定义、

  级别 5 --linux系统的图形界面,通常作为初学者及图形工作站使用、

  级别 6 --linux系统会关闭所有的程序,并且重新启动系统、

  3、inittab配置文件的内容说明:

  1)、该文件中,每一行均采用如下格式

  编号 : 运行级别 : 触发动作  : 运行命令

  2)、编号与运行级别:

  编号 一项,在/etc/inittab文件,只需要确保不重复即可,通常编号采用1 至 4 个字符组成、

  运行级别 一项,指当前的触发动作是在哪个级别发生的,只有指定的级别下发生该动作、

  才会去自动执行具体的命令、

  3)、触发动作介绍:

  * initdefault -- 该动作为当linux启动时,默认要进入的级别

  可以将该动作的级别,由原来的5号级别更改为3号级别、

  * sysinit -- 该动作为当linux启动时,要进行初始化、

  该动作会要求自动执行一个程序 /etc/rc.d/rc.sysinit

  * wait -- 进入相应的级别,会自动执行一次对应的命令、

  如 13:3:wait:/etc/rc.d/rc 3

  表示 进入级别 3就自动运行一次 rc 3 命令

  注:rc 3命令,会调用 /etc/rc3.d目录下的所有程序,如果这些程序以k开头

  即表示要关闭的,以s开头的即表示要启动的、

  * ctrlaltdel -- 在任何级别下,按下键盘上的ctrl+alt+del 三键,即执行命令

  /sbin/shutdown -t3 -r now 该命令为立刻重启计算机、

  * powerfail -- 当ups告知外界断电,则会执行对应的命令,如

  该命令为将在两分钟以后系统关闭 [电源失败]

  * poweerokwait -- 在准备关机时,ups告知外界电力恢复,则会执行对应的命令、

  如 /sbin/shutdown -c ,即表示取消关机命令、[电源正常]

  * respawn -- 当某一个指定的程序结束后,会再执行一次、该动作,通常是针对于虚拟字符

  界面而言,即当用户退出第一个虚拟字符界面时,系统会再运行一次第一个虚拟

  字符界面,要求用户登录、对应命令为 /sbin/mingetty tty1

  四、独立进程与非独立进程介绍:

  1、独立进程:

  * 所有的独立进程及其进程脚本 均保存在独立进程目录,即 /etc/rc.d/init.d

  * 所有的独立进程,均可以由系统管理员手工启动及控制,也可以使指定的独立进程,在指定的系统

  级别下自动运行或停止、

  * 针对于独立进程而言,无论是否存在用户访问,其会始终占用系统资源、

  通常情况下,独立进程是那些使用较多的并且是比较重要的系统程序、

  2、非独立进程:

  * 所有的非独立进程及其进程脚本,均保存在非独立进程目录,即 /etc/xinetd.d

  * 非独立进程通常是那些使用比较少的,占用系统资源较少的进程、

  当有用户访问时,系统会启动非独立进程为用户提供服务,当用户访问结束后,系统会关这些非独立

  进程、

  startx& -----在纯字符界面下进入图形界面

五、独立进程的控制与管理方法:

  1、使用命令查看当前系统所在的级别:

  runlevel

  如 查看结果为 N 3 ,表示系统刚启动,便直接进入了 3号级别、

  若结果为 5 3 ,表示系统刚从5号级别转到当前的 3号级别

  注:在级别 3下,可以输入命令 startx& 在级别3下启动图形界面、

  2、在linux系统中,使用命令,在各种级别之间进行切换:

  init 对应的级别号

  如 init 5

  3、在linux系统中,每个运行级别所对应的级别目录

  级别 0 /etc/rc.d/rc0.d

  级别 1 /etc/rc.d/rc1.d

  级别 2 /etc/rc.d/rc2.d

  级别 3 /etc/rc.d/rc3.d

  级别 4 /etc/rc.d/rc4.d

  级别 5 /etc/rc.d/rc5.d

  级别 6 /etc/rc.d/rc6.d

  说明:用户可以打开每个级别所对应的目录,所在目录下均会存在以下两种文件,即一种是以 k

  开头的文件,该类文件表示进入该级别后要关闭的程序

  另一种是以 s 开头的文件,该类文件表示进入该级别后要运行的程序

  每一种文件都有对应的编号,如 sookillall ,00即为程序的编号,表示执行该程序的先后顺序,编号越小,则执行优先

  级越高、

  4、级别0与级别6的级别目录说明:

  级别6 目录内容:

  SOOKillall 关闭所有进程

  SO1reboot 重启系统

  除此以外,其余的均为以K 开头的文件

  级别0 目录内容:

  SOOkillall 关闭所有进程

  SO1halt 挂起 [关闭电源]

  除此以外,其余的均为以 K 开头的文件、

  5、使用命令,使指定的独立进程在进入某一个级别后会自动运行、

  方法一: 主菜单丨系统设置丨服务器设置丨服务

  该方法只能设定独立进程在当前级别下自动运行

  方法二: 在字符界面下,使用命令 ntsysv

  该方法也只能设定独立进程在当前级别下自动运行

  方法三: 在字符界面下,使用命令 chkconfig

  * 使用 chkconfig 命令,查看指定的独立进程能在哪些级别下自动运行

  chkconfig --list独立进程名称 on

  如 chkconfig --level 35 smb on

  注意:若要使指定的独立进程在指定的相关级别下不运行,则只需要将on 改为 off

  以上三种方法,仅仅是配置了指定的独立进程,在进入某一个对应的级别以后会自动运行、

  如果现在已经在指定的级别中,独立进程是不会运行的、

  6、通过命令,使得每一个独立进程在当前的级别下手工运行:

  [而第5点中的三种方法,是下次及以后进入对应级别再自动运行]

  方法一:打开主菜单丨系统设置丨服务器设置丨服务

  选择所要运行的独立进程,并单击工具栏中的“开始”即可

  方法二:直接运行独立进程的控制脚本即可

  * 确定独立进程脚本所在的位置以及名称

  所有独立进程脚本,全部放于, /etc/rc.d/init.d

  如,其中有一脚本名称为 smb

  如果在字符界面下,启动smb,则方法是

  /etc/rc.d/init.d/smb stop start

  若是停止

  /etc/rc.d/init.d/smb stop

  重启 /etc/rc.d/init.d/smb restart

  查看状态 /etc/rc.d/init.d/smb status

  方法三: 使用 service 命令,运行脚本

  格式:

  service 独立进程脚本名 控制方法

  说明:service 命令,可以自动到 /etc/rc.d/init.d目录下查找对应的独立进程脚本

  如

  service smb start 打开

  service smb stop 关闭

  service smb restart 重启

  service smb status 查看

  六、非独立进程:

  在/etc/xinetd.d目录,采用 vi软件打开非独立进程的控制脚本,如 telnet

  将其中的 disable=yes 更改为 disable=no

  完成,保存退出,并且要重启xinetd独立进程,即 service xinetb restart

  注意:将 非独立进程脚本中的disable 值更改为 no ,其目的主要在于使 xinetd 可以

  对该非独立进程进行控制管理,包括启动与停止等工作、

  如果 disable值为yes,则表示xinetd不能控制管理及启动该非独立进程,因此该非独立进程无法提供服务