Linux启动流程和服务管理(init和systemd)
目录
二:Linux服务管理(service,systemctl)
一:Linux启动流程
Rhel6启动过程:
Rhel7启动过程:
GRUB2相较于GRUB一代的提升:更健壮、可移植、更强大。支持BIOS、EFI和OpenFirmware,支持GPT和MBR分区表。支持非Linux系统,如苹果HFS文件系统和Windows的NTFS文件系统
systemd 被设计用来改进 sysvinit 的缺点,它和ubuntu的upstart是竞争对手,预计会取代它们。
systemd的目标是:尽可能启动更少进程;尽可能将更多进程并行启动。systemd尽可能减少对shell脚本的依赖。传统sysvinit使用inittab来决定运行哪些shell脚本,大量使用shell脚本被认为是效率低下无法并行的原因。systemd使用了Linux专属技术,不再顾及POSIX兼容。
init和Systemd的区别
init:
- 一是启动时间长,init是串行启动,只有前一个进程启动完,才会启动下一个进程
- 二是启动脚本复杂,Init进程只是执行启动脚本,不管其他事情,脚本需要自己处理各种情况,这往往使得脚本变得很长
- 由Linux内核加载运行,位于 /sbin/init ,是系统中第一个进程,PID永远为1

对于支持 service 的程序,安装的时候,会自动的在 /etc/init.d 目录添加一个配置文件。当我们使用 service 控制程序时,比如执行开启httpd的服务:service httpd start 。那么我们的 service 就会开启 /etc/init.d/httpd 配置文件里面指向的 /usr/sbin/httpd 可执行文件

systemd:
- 按需启动服务,减少系统资源消耗。
- 尽可能并行启动进程,减少系统启动等待时间
- 由Linx内核加载运行,位于 /usr/lib/systemd/systemd ,是系统中第一个进程,PID永远为1

对于支持 systemd 的程序,安装的时候,会自动的在 /usr/lib/systemd/system 目录添加一个配置文件。当我们使用 systemctl 控制该程序时,比如执行开启httpd服务:systemctl start httpd.service 。那么我们的 systemctl 就会开启 httpd.service 配置里面指向的 /usr/sbin/httpd 可执行文件

如果我们想让该程序开机启动,我们可以执行命令 systemctl enable  httpd,这个命令相当于在 /etc/systemd/system 目录添加一个软链接,指向 /usr/lib/systemd/system 目录下的 httpd.service 文件。这是因为开机时,Systemd只执行 /etc/systemd/system 目录里面的配置文件。

Init 进程的配置文件
| 参数 | 说明 | 
|---|---|
| /etc/init.d/ | 服务启动脚本配置文件存放目录 | 
| /etc/inittab | 默认运行级别配置文件 | 
| /etc/init/rcS.conf | 系统初始化配置文件 | 
| /etc/init/rc.conf | 各运行级别初始化的配置文件 | 
| /etc/init/rcS-sulogin.conf | 单用户模式启动 /sbin/sushell 环境的配置文件 | 
| /etc/init/control-alt-delete.conf | 终端下的 ctrl+alt+del 热键操作的配置文件 | 
| /etc/sysconfig/init | tty终端的配置文件 | 
| /etc/init/start-ttys.conf | 配置tty终端的开启数量、设备文件 | 
| /etc/init/tty.conf 或 /etc/init/serial.conf | 控制tty终端的开启 | 
Systemd进程的配置文件
| 参数 | 说明 | 
|---|---|
| /etc/systemd/system/default.target | 取代/etc/inittab文件配置,通常符号链接到 /lib/systemd/system/graphical.target | 
| /run/systemd/system/ | 系统执行过程中所产生的服务脚本所在目录 | 
| /etc/systemd/system/ | 里面存放着不同级别的开启自启服务 | 
| /usr/lib/systemd/system/ 和 /lib/systemd/system/ 和,两个文件完全一样,因为lib是/usr/lib的软链接 | 每个服务最主要的启动脚本设置,类似于之前的 /etc/init.d/ | 
运行级别和说明
| 运行级别 | 说明 | Rehl 6/7 命令 | Rhel7 命令 | 
|---|---|---|---|
| 0 | 关机状态,使用该级别将会关机 | init 0 | poweroff | 
| 1 | 系统救援模式,多用于系统维护 | init 1 | systemctl isolate rescue.target | 
| 2 | 字符界面的多用户模式(不可访问网络) | init 2 | systemctl isolate mutil-user.target | 
| 3 | 字符界面的完整多用户模式,大多数服务器主机运行此级别 | init 3 | systemctl isolate mutil-user.target | 
| 4 | 未分配使用 | init 4 | systemctl isolate mutil-user.target | 
| 5 | 图形界面的多用户模式,提供了图形桌面操作环境 | init 5 | systemctl isolate graphical.target | 
| 6 | 重新启动主机 | init 6 | reboot | 
查看运行级别:
- runlevel : 显示切换前的运行级别 和当前运行级别 (6/7)
- systemctl get-default : 显示当前运行级别 (7)
永久设置开机模式
- systemctl set-default multi-user.target 开机默认为文本模式
- systemctl set-default graphical.target 开机默认为图形模式
- 修改 /etc/inittab 默认运行级别配置文件
二:Linux服务管理(service,systemctl)
Rhel6 用 service 和 chkconfig 来管理服务,它是 SystemV 架构下的一个工具。
Rhel7 是用 systemctl  来管理服务,它融合了之前的 service 和 chkconfig 的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。systemctl 是 systemd 架构下的一个工具。
| 动作 | Rhel6 旧指令 | Rhel7新指令 | 
|---|---|---|
| 启动某服务 | service httpd start | systemctl start httpd | 
| 停止某服务 | service httpd stop | systemctl stop httpd | 
| 重启某服务 | service httpd restart | systemctl restart httpd | 
| 检查服务状态 | service httpd status | systemctl status httpd | 
| 删除某服务 | chkconfig --del httpd | 停掉应用,删除其配置文件 | 
| 使服务开机自启动 | chkconfig --level 5 httpd on | systemctl enable httpd | 
| 使服务开机不自启动 | chkconfig --level 5 httpd off | systemctl disable httpd | 
| 显示所有已启动的服务 | chkconfig --list | systemctl list-unit-files | grep enabled | 
| 加入自定义服务 | chkconfig --add test | systemctl load test | 
| 查询服务是否开机自启 | chkconfig --list | grep httpd | systemctl is-enabled httpd | 
| 查看启动失败的服务 | systemctl --failed | 
systemd的一些常用命令:
列出所有可用单元 : systemctl  list-unit-files
列出所有运行的单元: systemctl list-unit-files | grep enabled 
列出所有可用服务:  systemctl list-unit-files  --type=service
列出所有运行的服务: systemctl list-unit-files  --type=service | grep enabled 
屏蔽httpd服务:systemctl  mask httpd
Linux启动流程和服务管理(init和systemd)的更多相关文章
- Linux操作系统-CentOS7启动流程和服务管理
		Linux操作系统-CentOS7启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.systemd POST --> Boot Sequence --&g ... 
- Linux操作系统-CentOS6启动流程和服务管理
		Linux操作系统-CentOS6启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux组成 1>.Linux: kernel+rootfs ker ... 
- Linux启动流程与模块管理(15)
		系统的启动其实是一项非常复杂的过程,因为内核得要检测硬件并加载适当的驱动程序,接下来则必须要调用程序来准备好系统运行的环境,以让用户能够顺利的操作整台主机系统,如果你能够理解系统启动的原理,那么将有助 ... 
- 鸟哥的linux私房菜——第20章 启动流程、模块管理与loader
		20.1 Linux启动流程分析 Linux启动过程: 按下开机电源后计算机硬件主动读取BIOS来加载硬件信息以及硬件系统的自我测试,之后系统会主动读取第一个可启动的设备(由BIOS设置),此时就可以 ... 
- Linux启动流程详解
		在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ... 
- Linux启动流程详解【转载】
		在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多:一般就是通电.BIOS.主引导记录.操作系统这四步.所以我们一般认为加载内核是linux启动流程的第一步. 第一步.加载内核 操作系统接 ... 
- Linux启动流程CentOS6和7的区别
		目 录 Linux启动流程 I 第1章 CentOS6启动流程 1 1.1 BIOS 1 1.2 MBR 1 1.3 GRUB 1 1.4 kernel(加载内核) ... 
- 20、linux启动流程和救援模式
		1.Linux启动流程 2.Linux运行级别 1.什么是运行级别,运行级别就是操作系统当前正在运行的功能级别 System V init运行级别 systemd目标名称 作用 0 runlevel0 ... 
- 浅析Linux启动流程
		Linux系统启动流程 Linux 系统的启动,从计算机开机通电自检开始,一直到登陆系统,需要经历多个过程.了解 Linux 的启动过程,有助于了解 Linux 系统的结构,也对系统的排错有很大的帮助 ... 
随机推荐
- 不一样的软件们——GitHub 热点速览 v.21.10
			作者:HelloGitHub-小鱼干 创意,是程序员的一个身份代名词,一样的软件有不一样的玩法.比如,你可以像用 git 一样操作一个 SQL 数据库,dolt 就是这样的数据库.又比如,你可以只写文 ... 
- WPF 基础 - 图片之界面截图
			1. 功能 系统截图. 2. 实现 2.1 思路 控件继承自 System.Windows.Media.Visual, 通过 System.Windows.Media.Imaging.RenderVi ... 
- 微软跨平台UI框架MAUI真的要来啦
			.NET 6 preview已经上线,是时候为在BUILD 2020上宣布的新.NET Multi-platform App UI(MAUI)做准备了.对于客户端应用程序开发人员来说,这一年.NET有 ... 
- POJ_2533 Longest Ordered Subsequence 【LIS】
			一.题目 Longest Ordered Subsequence 二.分析 动态规划里的经典问题.重在DP思维. 如果用最原始的DP思想做,状态转移方程为$DP[i] = max(DP[j] + 1) ... 
- 怎么理解onStart可见但不可交互
			前言 今天朋友遇到一个面试题,分享给大家: onStart生命周期表示Activity可见,那为什么不能交互呢? 这个问题看似简单,但涉及到的面还是比较多的,比如Activity生命周期的理解,进程的 ... 
- 一个名叫Sentinel-Rules-SDK的组件,使得Sentinel的流控&熔断规则的配置更加方便
			原文链接:一个名叫Sentinel-Rules-SDK的组件,使得Sentinel的流控&熔断规则的配置更加方便 1 Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越 ... 
- 分子量(JAVA语言)
			package 第三章习题; /* * 给出一种物质的分子式(不带括号)求分子量. * 本题分子只包含4种原子,分别为C,H,O,N * 分子量为分别为12.01,1.008,16.00,14 ... 
- 学习Typora来写博客
			Typora学习 标题分级 知识详解 标题分级可使用快捷键Ctry+数字键(1.2.3.4.5.6.0) 例如Ctry+1为一级标题,Ctry+2为二级标题,以此类推,总共可分为六个级别的标题,Ctr ... 
- 【工程应用一】 多目标多角度的快速模板匹配算法(基于NCC,效果无限接近Halcon中........)
			愿意写代码的人一般都不太愿意去写文章,因为代码方面的艺术和文字中的美学往往很难兼得,两者都兼得的人通常都已经被西方极乐世界所收罗,我也是只喜欢写代码,让那些字母组成美妙的歌曲,然后自我沉浸在其中自得其 ... 
- 借鉴Elasticsearch 7.x 深入系列学习
			开始 Elasticsearch 深入系列目录如下: Elasticsearch 7.x 深入 数据准备 Elasticsearch 7.x 深入[1]索引[一]原理 Elasticsearch 7. ... 
