linux启动过程


# Linux引导过程总览

linux启动过程_第1张图片

INIT进程
由Linux内核加载运行 /sbin/init 程序
是系统中第一个进程,PID(进程标记)号永远为1
配置文件:/etc/inittab

 

[root@localhost ~]# grep -v "^#" /etc/inittab | grep -v "^$"(去除注释行、空行)
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
……

## inittab文件的结构
x:5:respawn:/etc/X11/prefdm -nodaemon
ID字段:runlevelsziduan : action字段 : process字段

字段                          说明
 id                             用于在inittab文件中唯一标识一个配置记录
runlevels              用于指定该记录在哪些运行级别中运行
action                   用于描述记录将执行哪种类型的动作
process                   用于设置启动进程所执行的命令


禁用热键重启功能
[root@localhost ~]# vi /etc/inittab
……
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
……
[root@localhost ~]# init q`(重新读取inittab配置)

字符控制台
通过/sbin/mingetty程序提供服务

[root@localhost ~]# grep "mingetty" /etc/inittab
1:2345:respawn:/sbin/mingetty tty1      
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

(提供6个字符控制台)

rc.sysinit脚本文件
/etc/rc.d/rc.sysinit
由init进程调用执行
完成设置网络、主机名、加载文件系统等初始化工作


[root@localhost ~]# grep ":sysinit" /etc/inittab
si::sysinit:/etc/rc.d/rc.sysinit
[root@localhost ~]# head /etc/rc.d/rc.sysinit
#!/bin/bash
#
# /etc/rc.d/rc.sysinit - run once at boot time
#
# Taken in part from Miquel van Smoorenburg's bcheckrc.
#
 HOSTNAME=`/bin/hostname `
HOSTTYPE=`uname -m`
unamer=`uname -r `


rc脚本文件
/etc/rc.d/rc脚本文件
由init进程调用执行
根据指定的运行级别, 加载或终止相应的系统服务


[root@localhost ~]# grep "rc.d/rc " /etc/inittab
l0:0:wait:/etc/rc.d/rc 0  `(最后的数字为运行级别参数)`
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6


rc.local脚本文件

/etc/rc.local脚本文件
由rc脚本调用执行
保存用户定义的需开机后自动执行的命令

[root@localhost ~]# vi /etc/rc.d/rc.local
……
/sbin/hwclock --hctosys(Linux在内次启动之后根据BIOS中的始终自动校对系统时间)

 

# 系统服务控制

系统服务控制
常用方式:
service  服务名称  控制类型
/etc/rc.d/init.d服务名称  控制类型
控制类型
start:启动
stop:停止
restart:重新启动
reload:重新加载
status:查看服务状态
……

[root@localhost ~]# service crond
Usage: nfs {start|stop|status|restart|reload|condrestart}(显示nfs服务可用户的控制类型)

[root@localhost ~]# service crond status
crond (pid  3069) is running...(crond服务正在运行)

 

## Linux系统的运行级别、
查看运行级别
使用runlevel命令,分别显示:切换前的运行级别、当前运行级别
临时切换运行级别
使用init命令结合0-6运行级别参数
输出结果中分别包含切换前的级别和目前的级别,如果之前未切换过运行级别,第一列将显示“N”
使用init程序命令切换运行级别,只要使用与运行级别相对应的数字(0~6)作为命令参数即可

[root@localhost ~]# runlevel
N 5  (第一个字符为“N”表示之前未切换过运行级别)
[root@localhost ~]# init 3
[root@localhost ~]# runlevel
5 3
[root@localhost ~]# init 6  (重启系统)
[root@localhost ~]# init 0    (关闭系统)

 

你可能感兴趣的:(linux启动过程)