第六章 Linux系统管理 知识点
Edit by LCHSH
1. Linux系统的启动过程如何?
  ① Linux在启动时首先进行加电自检(加电自检是由计算机ROM内的一段BIOS代码对系统硬件状态以及用户设置参数进行检查)。
  在加电自检完成之后,去寻硬盘中的启动引导记录(MBR)。(主引导记录)
  ③ 加载启动引导管理器GRUB或者LILO。通过启动引导管理器,系统可以识别或确定:根分区位置、内核位置、系统初始化文件initrd位置。其中initrd文件用于加载磁盘以及文件系统。
  加载系统内核。(将内核的一部分或者全部读取到内存中)
  Linux内核运行INIT进程。
  ⑥ 进入指定运行级别,运行系统服务程序。
  ⑦ 运行控制台程序,提示并允许用户输入帐号和口令进行登录。
2. 什么是Linux的运行级别?各运行级别代表什么?系统运行级别由哪个文件定义?
  运行级别相当于系统进入的具备某种功能的模式(请对比Windows的各种安全模式)。每次开机进入相应的运行级别,代表具备了相应的功能。
  Linux下各种运行级别功能如下:
0: 关闭系统。
1 :单用户模式,允许root用户对系统进行维护,不允许其他用户使用主机,是一种调试模式。
2 :多用户模式,(不支持NFS),即在此模式下不允许网络登录。
3 :完全多用户模式。
4 :未分配使用。 
5 :图形登录的多用户模式。 
6 :重新启动(不要把系统缺省运行级别设置为6,否则系统将不能正常启动)。
③系统运行级别是由/etc/inittab文件来定义的。
3. 如何显示和更改系统当前运行级别?
  #runlevel(查看当前系统的运行级别)
  #init 3(更改系统运行级别为3)
4. 如何查看独立服务和非独立服务的启动状态?
  #chkconfig --list(查看系统中所有服务的启动状态)
  #chkconfig --list syslog(查看独立服务syslog的启动状态)
  #chkconfig --list rsync(查看非独立服务rsync的启动状态)
5. 如何设置独立服务和非独立服务的启动状态?
  #chkconfig --lelvel 24 syslog off(把独立服务syslog在运行级别2和4中的状态设为关闭,即,系统运行在级别2和4时,syslog服务关闭)
    #chkconfig rsync on(在系统中开启非独立服务rsync)
6. 什么是非独立服务?
  有些服务依赖于另一个服务,比如,rsync服务的启动就依赖于xinetd服务的启动,rsync服务就是非独立服务。即,只有xinetd服务启动后才有可能启动非独立服务。
对非独立服务的启动状态进行了更改后,需要重新启动xinetd服务,才能使更改生效。
#service xinetd restart(重启xinetd服务)
7. 什么是INIT进程?
    init是Linux系统中不可缺少的程序之一。
  所谓的INIT进程,它是一个由内核启动的用户级进程,由Linux内核引导运行。
  内核自行启动之后,就启动一个用户级程序init来完成以后的系统引导过程,所以INIT始终是第一个进程(其进程编号始终为1)。
  内核会在过去曾使用过init的几个地方查它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。
    INIT进程运行后将安装配置文件,引导运行系统所需要的其他进程,INIT进程将作为这些进程的父进程。
8. INIT进程的配置文件是什么
INIT进程是由Linux内核引导运行的,是系统中运行的第一个进程,其进程号(PID)永远为“1”。
INIT进程运行后将安装其配置文件,引导运行系统所需的其他进程,INIT进程将做为这些进程的父进程。 
INIT进程配置文件的文件名是“/etc/inittab”。
9. INIT进程的配置文件的格式代表什么?
INIT进程配置文件的文件名是“/etc/inittab”。
inittab文件中每行都具有相同的格式 :id:runlevels:action:process
inittab文件中的每行为一个设置记录,每个记录中有id、runlevels、action和process四个字段,各字段之间用“:”隔开,他们共同确定某进程在哪些运行级别中以何种方式运行。
  id字段用于在inittab文件中唯一标识一个配置记录,实际上id就是一个配置记录的名称,也就是一个任意指定的标签。
  ② runlevels字段用于指定该记录在哪些运行级别中运行,runlevels可以是单个运行级别也可以是运行级别列表。
  ③ action字段用于描述记录将执行哪种类型的动作,进入运行级别时init应该运行第四个字段内的命令一次,而且init应该等待该命令结束。
    action字段常见的设置值有如下几种:
initdefalut:用于标识系统启动后进入哪一个默认的运行级别,存在该字段时,process字段将被忽略。
id:3:initdefault:(表示当前系统缺省的运行级别为3--完全多任务模式)
  ※ sysinitsysinit类进程将在启动时,在任何boot或者bootwait类进程之前运行,在存在sysinit字段的情况下,记录中的runlevels字段将被忽略,实际上表示的是系统启动时准备运行的命令。
si::sysinit:/etc/rc.d/rc.sysinit(系统启动时自动执行/etc/rc.d/rc.sysinit脚本文件)
  ※ waitwait类进程将在进入指定运行级别后运行一次,init进程将等待其结束。
l3:3:wait:/etc/rc.d/rc 3(当运行级别为3时,以3为参数运行/etc/rc.d/rc脚本,init将等待其返回)
  ※ ctrlaltdel:用于指定用户使用CTRL+ALT+DEL组合键时,系统可以进行重新启动。
  Ca::ctrlaltdel:/sbin/shutdown –r now(按下组合键后,系统立即重新启动)
  ※ powerfail用于指定当UPS发来断电信号时系统需要运行的命令。
  pf::powerfail:/sbin/shutdown –f  -h +2(接到UPS发来的断电信号后,2分钟关机)
  ※ powerokwait:用于指定当供电恢复时,需要运行的命令。
  pr:12345:powerokwait:/sbin/shutdown –c(供电恢复时,取消已经发布但尚未执行的系统关闭任务)
(注:sysinitbootbootwaitaction将在系统启动时无条件运行,而忽略其中的runlevel,其余的action(不含initdefault)都与某个runlevel相关。)
  ※respawnrespawn类进程在结束后会重新启动运行。
0:12345:respawn:/sbin/mingetty tty0(在1-5个级别上以tty0为参数执行/sbin/mingetty程序,打开tty0终端用于用户登录,如果进程退出则再次运行mingetty程序)
  ④ process字段所设置的是启动进程时所执行的命令。
10. 在系统启动过程中,执行的系统脚本有哪些?
① rc.sysinit:保存在“/etc/rc.d/”目录中的Bash脚本文件,在系统启动时被调用执行,完成系统初始化的工作,这是系统执行的第一个脚本。
② rc.local:在系统启动过程中,完成初始化脚本的执行后,会执行“/etc/”目录中的“rc.local”脚本,可以将系统中需要自定义执行的命令保存在“rc.local”脚本中。
11. 程序和进程的关系如何?
① 程序是保存在外部存储介质中的可执行代码和数据,是静态保存的代码。
② 进程是程序代码在处理器中的运行,是动态执行的代码。
③ 操作系统在执行程序时,将程序代码由外部存储介质(如硬盘)读取到内部存储介质(内存)中。驻留在内存中的程序代码作为“进程”在中央处理器中被动态执行
  ④ Linux是多进程操作系统,每个程序启动时都可以创建一个或几个进程,与其他程序创建的进程共同运行在Linux内核空间,每个进程都是一个独立的任务。
12. 如何对进程进行查看?
使用ps命令查看进程:
ps –aux(查看系统内部的全部系统进程以及所有用户进程)
输出列表中的一些字段为:
USER:指明哪个用户启动了该命令。
PID:对进程的标识和引用。
TTY:指明该进程正运行于哪个终端上。
TIME:指明进程使用了多少CPU时间。
CMD:指明启动该进程的命令。
    STAT:显示当前进程的状态
——S:睡眠 R:运行 W:等待 Z:僵死 D:不可中断的静止 T:暂停执行
<:高优先级进程 N:低优先级进程 L:有内存分页分配并所在内存内
  使用top查看系统信息:
top
使用top命令可以查看系统当前运行信息。并且可以实时跟踪系统资源使用情况。同时显示系统运行进程列表和每一个进程运行的状态。
可以通过PmnA分别以占用CPU时间、占用内存资源、指定PIDPID进行排序。退出用linux内核文件放在哪q
  使用pstree查看进程树:
    pstree(以树状结构显示进程间的父子关系)
13. 启动进程的方式有哪些?
手工启动。
由用户输入命令,直接执行一个程序,产生一个进程,该进程是一个前台进程。
后台启动需要在命令尾加入“&”
# cp /dev/cdrom mycd.iso &(把制作光盘镜像的命令放在后台执行,交出终端的使用权,可以继续运行其他程序)
2 调度启动
使用at命令设置某个命令在某个时间,一次性地在系统中执行。
at –t 0412000341203分开始执行下面的命令)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。