一、系统启动流程回顾
二、CentOS 5.x,6.x,7.x的init程序区别
三、systemd工具介绍
- 3.1、systemd工具概述
- 3.2、systemctl工具概述
- 3.3、service以及chkconfig工具使用回顾
- 3.4、systemd中的unit介绍
- 3.5、systemctl工具实现service和chkconfig的功能
- 3.6、systemctl实现运行级别切换和管理
- 3.7、unit配置文件语法说明
- 3.8、对于编译安装的应用程序如何找到对应的unit配置模板
POST(加电自检) - BIOS(硬件检测,找到启动的设备) – MBR(Bootloader) – GRUB(查看并加载内核) – Kernel(可能要记住ramdisk,挂载rootfs,加载init程序) – 用户空间启动初始化工作(init程序通过不同机制来实现)。 接下来,我们主要讲的就是CentOS 7.x引入的一个用来实现init工作的管理工具,叫systemd。当然,它的功能也不仅仅是完成init原先的工作。
linux的init程序类型: (1) CentOS 5.x以及之前 init是SysV init; 配置文件:/etc/inittab (2) CentOS 6.x init是upstart来实现的一部分; 配置文件:/etc/inittab,为了向后兼容,其实该配置文件作用很小 实质的配置读取的配置文件:/etc/init/*.conf (3) CentOS 7.x init是systemd实现的一部分; 配置文件:/usr/lib/systemd/system/, /etc/systemd/system/ 实际/sbin/init是一个指向/lib/systemd/systemd程序的一个链接文件;
参考链接:https://wiki.archlinux.org/index.php/Systemd_(简体中文)https://linux.cn/article-7365-1.htmlhttps://www.freedesktop.org/wiki/Software/systemd/http://www.jinbuguo.com/systemd/systemd.htmlhttps://baike.baidu.com/item/systemd/18473007http://blog.51cto.com/andyxu/2122109?source=dra
3.1、systemd工具概述
在CentOS 7.x中,init命令默认是一个指向systemd命令的软链接:
查看systemd软件包的信息和安装文件:
作用:systemd是一个linux系统基础组件的集合,提供来一个系统和服务管理器,运行为pid为1的并负责其他程序。包括: (1) 支持并行化任务,完成系统引导时候实现服务并行启动; (2) 同时采用socket方式与D-Bus总线式激活服务; (3) 实现按需启动守护进程; (4) 利用linux的Cgroups监视进程; (5) 支持快照和系统恢复; (6) 维护挂载点和自动挂载点; (7) 对各服务间基于一来关系进程精密控制; (8) systemd支持SysV和LSB出事脚本,可以替代sysVinit; (9) 可以实现众多其他功能,包括控制日志进程、控制基础系统配置、维护登录用户列表以及系统账户、运行时目录和设置,可以运行容器和虚拟机,可以简单的管理网络配置、网络时间同步、日志转发和名称解析等。
关于Cgroups可以介绍参考:https://www.imooc.com/article/72502
上面的进程,主进程是pid为1的,然后其他进程都是辅助完成工作的。
主要特性: (1) 系统引导时候实现服务并行启动; (2) 可以按需激活进程; (3) 可以对系统状态做快照; (4) 基于依赖关系定义服务控制逻辑。
支持的命令行选项有:(应用不多,不重要,了解即可)
#上面可能用的到的一个选项,我觉得是–dump-configuration-items
3.2、systemctl工具概述
systemctl是systemd系统和服务管理器,它可用于检查和控制 systemd 系统与服务管理器的状态。
3.3、service以及chkconfig工具使用回顾
关于运行级别文件说明:
选取redis的rpm包的一个服务脚本的分析实例:
3.4、systemd中的unit介绍
systemd中的unit一共有12中,分别是:
详情请参考: man systemd.unit
unit的常见类型:
3.5、systemctl工具实现service和chkconfig的功能
查看服务状态信息:
3.6、systemctl实现运行级别切换和管理
电源管理:
3.7、unit配置文件语法说明
- 文件通常由三部分组成: [Unit]:定义与Unit类型无关的通用选项;用于提供unit的描述信息、unit行为及依赖关系等; [Service]:与特定类型相关的专用选项;此处为Service类型;还有之前介绍的不同的unit,例如socket, [Install]:定义由“systemctl enable”以及"systemctl disable“命令在实现服务启用或禁用时用到的一些选项;
- 配置文件摘要说明: /etc/systemd/system:系统管理员和用户使用 /usr/lib/systemd/system:发行版打包者使用 unit文件中以 “#” 开头的行后面的内容会被认为是注释, 相关布尔值,1、yes、on、true 都是开启,0、no、off、false 都是关闭 时间单位默认是秒,所以要用毫秒(ms)分钟(m)等须显式说明 对于新创建的unit文件或修改了的unit文件,要通知systemd重载此配置文件:systemctl daemon-reload
- 以服务的unit文件常用语法进行说明
给出一个redis的unit文件的示例说明:
3.8、对于编译安装的应用程序如何找到对应的unit配置模板
() nginx 编译安装并配置unit实现开机自启动
第一部分:如何获取nginx的unit文件模板
第二部分:(引用之前的比较简要说明编译步骤)
第三部分:配置nginx的unit测试
(2) httpd2.4编译安装并配置unit实现开机自启动 第一部分:获取光盘中的rpm包并提取文件
第二部分:编译安装httpd2.4
第三部分:配置httpd2.4的unit测试
到此这篇enoent(enoent解决办法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/35787.html