• init


    init 程序的类型:

    	SysV: 
    		init, CentOS 5 之前
    		配置文件:/etc/inittab
    	Upstart: 
    		init,CentOS 6
    		配置文件:/etc/inittab,/etc/init/*.conf
    	
    	Systemd :
    		systemd, CentOS 7
    		配置文件:/usr/lib/systemd/system,/etc/systemd/system
    		
    

    init 启动级别

    	在init配置文件中有个非常重要的配置项目,那就是默认的系统启动级别。
    	启动级别就是为系统维护的目的而设定,途径是设定启动或关闭服务实现。
    	sbin/init是CentOS6 之前的。
    	运行级别:
    		为系统运行或维护等目的而设定;0-6 的7 个级别
    		0 :	关机;关闭所有服务。
    		1 :	维护模式;单用户模式;single模式;此级别可允许root用户直接登录而无需认证
    		2 :  	维护模式;多用户模式,启动网络功能,但不会启动NFS ,需要用户认证
    		3 :	正常模式;多用户模式,文本界面
    		4 :	预留级别;可同3 级别
    		5 :	正常模式;多用户模式,图形界面
    		6 :	重启;关闭所有服务,且再重启所有服务
    	默认级别: 
    		3或5,服务器基本上使用3级别。
    	切换级别:
    		init #
    	查看级别:
    		runlevel ; who -r
    	启动时:
    		可以选择e,a,c来进行相关操作
    

    init 第一步初始化

    	init 读取其初始化文件:
    		/etc/inittab
    		1》初始运行级别(runlevel)
    		2》使用/etc/rc.d/rc.sysinit脚本来进行系统初始化
    		3》对应进行运行级别的脚本目录,初始运行级别是几,这里就进行那个脚本
    		4》捕获某个关键字顺序,这里是配置组合键功能
    		5》定义UPS 电源终端/恢复脚本,也就是配置不断电系统pf、pr两种机制
    		6》在虚拟控制台生成getty
    		7》在运行级别N上来初始化X,以/etc/X11/prefdm-nodaemon启动图形化界面
    

    CentOS 5 的inittab 文件

    	配置文件:
    		/etc/inittab
    		此配置文件中,每一行定义一个由init执行的action以及与之对应的process,action用于定义程序啥时候被运行
    	开头第一行格式:id:runlevel:action:process
    		action:
    			wait: 切换至此级别运行一次
    			respawn:此process 终止,就重新启动之
    			initdefault:设定默认运行级别;process会被省略
    			sysinit:设定系统初始化方式,此处一般为指定/etc/rc.d/rc.sysinit
    		默认的runlevel配置,次runlevel为3
    			id:3:initdefault:
    	系统软件运行环境的初始化脚本
    		si::sysinit:/etc/rc.d/rc.sysinit
    		/etc/rc.d/rc.sysinit为初始化用户空间环境,会执行许多系统初始化任务
    	7个不同runlevel,这是需要启动的服务的script放置路径。
    		此处系统会启动对应级别下设定为要启动的服务和关闭的服务。
    		这意味着通过/etc/rc.d/rcN.d/下所有链接文件来决定如何启动或关闭服务。
    		 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
    	是否允许按下ctrl +alt+del就重新启动配置项目:
    		ca::ctrlaltdel:/sbin/shutdown -t3 -r now
    	有关不间断电源系统(UPS),一个是断电时的关机,一个是恢复供电时的处理。
    		pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
    		pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
    	tty1--tty6是由底下这六行决定
    		 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
    	X window 是由以下这行决定的
    		x:5:respawn:/etc/X11/prefdm -nodaemon
    

    CentOS 6 /etc/inittab 和相关文件

    	/etc/inittab
    		设置系统默认的运行级别:id:3:initdefault:
    	/etc/init/*.conf
    		/etc/init/control-alt-delete.conf
    		/etc/init/tty.conf
    		/etc/init/start-ttys.conf
    		/etc/init/rc.conf
    		/etc/init/prefdm.conf
    	破解CentOS5和6的root口令
    		直接使用单用户登录,在启动时进入grub,在进入单用户
    

    init进行的第二步初始化

    	/etc/rc.d/rc.sysinit: 系统初始化脚本
    		1)  设置主机名(读取/etc/sysconfig/network文件中的HOSTNAME进行)
    		2)  设置欢迎信息
    		3)  激活udev 和selinux
    		4)  挂载/etc/fstab 文件中定义的文件系统
    		5)   检测根文件系统,并以读写方式重新挂载根文件系统
    		6)  设置系统时钟
    		7)  激活swap 设备
    		8)  根据/etc/sysctl.conf 文件设置内核参数
    		9)  激活lvm 及software raid 设备
    		10) 加载额外设备的驱动程序
    		11) 清理操作
    

    启动各项服务

    	说明:rc N -->  意味着读取/etc/rc.d/rcN.d/
    		K*: K##* 
    		S*: S##* 
    			##运行次序,数字越小,越先运行,数字越小的服务,通常为被依赖到的服务
    			以K开头的都被传递stop参数来停止。
    			以S开头的都被传递start参数来开启
    	开机过程/etc/rc.d/rc3.d/的脚本是这样执行的:
    		for srv in /etc/rc.d/rcN.d/K*; do
    			$srv stop
    		done
    		for srv in /etc/rc.d/rcN.d/S*; do
    			$srv start
    		done
    	
    	/etc/rc.d/rc3.d/目录下符号链接文件可以通过两种方法创建:
    		1》通过在/etc/init.d/(/etc/rc.d/init.d )目录下编辑服务脚本,格式有要求。
    			然后在/etc/rc.d/rcN.d/目录下创建对应与/etc/init.d/目录下服务脚本的符号链接文件。
    		2》此符号链接文件也可通过chkconfig命令来实现
    

    注意:

    	正常级别下,最后启动一个服务S99local没有链接至/etc/rc.d/init.d 一个服务脚本,而是指向了/etc/rc.d/rc.local 脚本(计算机启动最后启动的服务,可以在这里面添加需要开机启动的东西)。
    	不便或不需写为服务脚本放置于/etc/rc.d/init.d/ 目录,且又想开机时自动运行的命令,可直接放置于/etc/rc.d/rc.local 文件中。
    	/etc/rc.d/rc.local 在指定运行级别脚本后运行,可以根据情况,进行自定义修改。
    	1:2345:respawn:/usr/sbin/mingetty tty1
    	2:2345:respawn:/usr/sbin/mingetty tty2
    	 ...
    	6:2345:respawn:/usr/sbin/mingetty tty6
    		mingetty 会自动调用login 程序
    	x:5:respawn:/etc/X11/prefdm -nodaemon
    

    总结:

    	/sbin/init --> (/etc/inittab) -->  设置默认运行级别 --> 运行系统初始脚本、完成系统初始化 --> ( 关闭对应下需要关闭的服务)务 启动需要启动服务 -->  设置登录终端
    	CentOS6,init 程序为upstart, 其配置文件/etc/inittab, /etc/init/*.conf,配置文件的语法遵循upstart 配置文件语法格式,和CentOS5 不同。
    	CentOS 6 启动流程:
    		POST --> Boot Sequence(BIOS) --> Boot Loader -->Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 -->  系统初始化脚本 rc.sysinit --> 关闭或启动对应级别的服务 -->  启动终端
    
  • 相关阅读:
    angular-ui-bootstrap的弹出框定义成一个服务的实践(二)
    分享百度文件上传组件webUploader的使用demo
    display的flex属性使用详解
    数组去重(初识ES6)
    在ng中的select的使用方法的讲解
    安装xamp之后,appach、mysql等问题的总结
    python中string.casefold和string.lower区别
    python3数据类型
    MySQL bin-log 日志清理方式
    python终端颜色设置
  • 原文地址:https://www.cnblogs.com/shenxm/p/8447744.html
Copyright © 2020-2023  润新知