引导过程和服务控制

要求:

? 设置Linux系统每次开机后自动进入字符模式界面。

步骤:

编辑/etc/inittab文件,将默认运行级别修改为3。如图所示:

linux的引导过程和服务控制_linuxlinux的引导过程和服务控制_linux_02

? 使用ntsysv工具同时调整2、3、4、5运行级别中的服务状态,关闭下列服务:anacron、atd、avahi—daemon、Bluetooth、cups、firstboot、hidd、hplip、ip6tables、iptables、isdn、mcstrans、mdmonitor、nfslock、pcscd、portmap、restorecond、rhnsd、rpcgssd、rpcidmapd、sendmail、setroubleshoot、xfs、xinetd、yum—updatesd。

步骤:

使用ntsysv工具:(重启后才生效)

ntsysv工具可以在字符模式中运行,为用户提供一个仿图形的交互式操作界面,专门用于集中配置各种系统服务的启动状态。当需要同时设置多个服务的启动状态时,使用ntsysv工具会非常方便。

单独执行“ntsysv” 命令时仅用于管理当前运行级别中的服务:通过“--level”选项可以对指定运行级别中的服务进行管理。如图所示:

linux的引导过程和服务控制_linux_03

操作时按上下箭头键来选择上述的系统服务,按空格键设置服务的默认启动状态(“[*]”表示启动,“[ ]”表示关闭)。如果想知道所选定服务的说明信息。按F1键可以获得帮助。如图所示:

linux的引导过程和服务控制_blank_04

? 使用chkconfig工具调整个别服务的启动状态。

使用chkconfig工具:(重启后才生效)

chkconfig工具与ntsysv的功能类似,但是并不提供交互式的操作界面,它用于查询或设置系统服务的默认启动状态。当需要设置某一个服务在不同运行级别中的默认启动状态时,使用chkconfig工具会更有效率。

将chkconfig命令与“--list”选项配合使用,可以查看指定的系统服务在不同运行级别中的默认启动状态,若未指定服务名称,则将显示出所有服务的默认启动状态。输出结果中的0,1,2,……,6对应不同的运行级别。

通过“on”、“off”开关值可以设置服务的默认启动状态,它们分别表示启动、关闭。结合“--level”选项可以指定对应的运行级别。执行格式如下:

chkconfig --level 运行级别 服务名称 on|off

u 将cups、gpm、vncserver服务在运行级别3中的默认启动状态设为关闭。

步骤:

如图所示:

linux的引导过程和服务控制_linux_05

u 将network服务在运行级别3、5中的默认启动状态设为启用。

步骤:

如图所示:

linux的引导过程和服务控制_blank_06

u 将vsftpd服务在运行级别3、5中的默认启动状态设为启用,其余级别中设为关闭。

步骤:

如图所示:

linux的引导过程和服务控制_target_07

缺少“--level”选项,也可以设置指定的系统服务在不同运行级别中的默认启动状态,但是这种方式的设置结果会受到该服务脚本文件中状态参数的影响,存在不确定性,因此不建议使用。

系统初始化进程及文件

1. init进程

与使用数字标记用户账号、组账号类似,Linux系统中的进程(运行中的程序)也使用数字进行标记,每个进程的身份标记号称为PID。在引导Linux系统的过程中,“/sbin/init”是内核第一个加载的程序,因此init进程对应的PID号总是为“1”。

init进程正是维持整个Linux系统运行的所有进程的“始祖”,因此init进程是不允许被轻易终止的。需要切换不同的系统运行状态时,可以向init进程发送正确的执行参数,由init自身来完成相关操作。

2. inittab配置文件

inittab文件位于/etc目录中,是init程序的配置文件。当init程序运行后,将按照/etc/inittab文件指定的配置依次启动系统中对应的脚本和程序。

在/etc/inittab文件中,除了以“#”号开头的注释信息和空行以外,每一行都视为一条有效的配置记录。每条配置记录中的四个字段之间使用半角的冒号“:”分割,基本格式如下:

id: runlevels: action: process

标记: 运行级别: 动作类型: 程序或脚本

u 在Linux运行在文本模式中时,如果用户按下Ctrl+Alt+Delete热键组合,系统将会在三秒后重新启动,这个功能也是在inittab文件中设置的。若要禁止此热键重启功能,可以编辑inittab文件,在“ca::ctrlaltdel:/sbin/shutdown –t3 –r now”配置行的开头添加“#”号,并执行“init q”命令以激活配置(q选项将通知init进程重新读取配置文件)。

3. rc.sysinit脚本文件

rc.sysinit是init进程所调用的系统初始化脚本,位于/etc/rc.d/目录下。此脚本程序主要完成包括设置网络、主机名、加载文件系统、设置时钟、检测文件系统等一系列初始化工作。init进程通过inittab文件中的对应配置来加载rc.sysinit脚本。

4. rc脚本文件

rc脚本同样由init进程进行调用,文件位于“/etc/rc.d/rc”。rc脚本通过使用不同的级别参数,分别加载及终止不同的系统设置,进入到相应的系统运行级别。

5. rc.local脚本文件

rc.local脚本是一个额外的启动控制文件,位于/etc/rc.d/rc.local,由rc脚本在最后时进行加载。rc.local脚本用于管理员自行设置开机启动项,运行级别2、3、4、5中默认都会自动加载rc.local脚本。凡是需要在系统启动后自动执行的一些命令操作,都可以添加到该文件中。

系统服务控制:

service 服务名称 控制类型

或者

/etc/rc.d/init.d/服务名称 控制类型

[start(启动)stop(停止)restart(重启)reload(重载)status(查看状态)]

查看系统的运行级别:runlevel

切换系统的运行级别:init 运行级别相对应的数字

? 查看当前系统中内存占用情况,重启并登录到字符模式,再次查看内存占用情况。

步骤:

1. 使用grep命令过滤查看系统内存的大小。如图所示:

linux的引导过程和服务控制_blank_08

2. 重启系统后,再次使用grep命令过滤查看系统内存的大小。如图所示:

linux的引导过程和服务控制_linux_09

? 使用init命令切换到图形模式,再次确认运行级别并查看内存占用情况,比较优化服务前后及在不同运行级别中的差异。

步骤:

1. 输入命令“init 5”切换到图形模式。如图所示:

linux的引导过程和服务控制_如图所示_10

2. 打开伪终端,再次使用grep命令过滤查看系统内存的大小。如图所示:

linux的引导过程和服务控制_blank_11