系统相关
首页 > 系统相关> > Linux启动流程

Linux启动流程

作者:互联网

 

RHEL 6 开机启动流程

当kernel加载驱动程序成功后,kernel主动调用第一个进程/sbin/init,init会取得runlevel信息。

runlevel执行等级

Linux通过设置runlevel来规定系统使用不同的服务来启动,让Linux的启动环境不同。依据有无网络或有无X Window将runlevel划分为七个等级:

runlevel等级

 

 init进程处理流程

 

 RHEL 7 开机启动流程

在kernel加载驱动程序完毕后,kernel主动调用第一个程序systemd。

systemd最主要的功能就是准备软件执行的环境,包括系统的主机名、网络设定、语系处理、文件系统格式及其他服务的启动等。所有的动作都会透过systemd的默认启动服务集合 → /etc/systemd/system/default.target来规划。(systemd已舍弃system V 的runlevel)

 

 systemd处理流程

 

 CentOS 7.x的systemd开机流程大概如下:

1. local-fs.target + swap.target:这两个 target 主要在挂载本机 /etc/fstab 里面所规范的文件系统与相关的内存置换空间。

2. sysinit.target:这个 target 主要在侦测硬件,加载所需要的核心模块等动作。

3. basic.target:加载主要的外围硬件驱动程序与防火墙相关任务。

4. multi-user.target 底下的其它一般系统或网络服务的加载。

5. 图形界面相关服务如 gdm.service 等其他服务的加载 。

 

init和systemd的区别

init:

服务的启动主要以/etc/init.d/服务文件名{start,stop}来启动与关闭的,在脚本中设置一个程序为开机自启的话,相当于将/etc/rc.d/rc5.d/下的服务设置一个软链接指向/etc/init.d的源文件。

systemd:

针对主机的各项本地服务与服务器网络服务要enable的话,就是将它放到/etc/systemd/system/...wants/这个目录下做个链接,如:

ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target. wants/vsftpd.service'

 

标签:systemd,target,启动,流程,runlevel,etc,init,Linux
来源: https://www.cnblogs.com/wanao/p/12921956.html