Linux 7中systemd工具详解

0    123    3

Tags:

👉 本文共约9643个字,系统预计阅读时间或需37分钟。

纸上得来终觉浅,绝知此事要躬行。

Linux 7中systemd工具详解

Linux中Systemd工具的使用


1. 发展由来

历史上,Linux 的启动一直采用init进程,如sysvinitUpStart,下面的命令用来启动服务。

init方法有两个缺点

  • 启动时间长
  • init进程是串行启动,只有前一个进程启动完,才会启动下一个进程
  • 启动脚本复杂
  • init进程只是执行启动脚本,不管其他事情
  • 脚本需要自己处理各种情况,这往往使得脚本变得很长

Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。

使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。

Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。事实上,现在还有很多人反对使用 Systemd,理由就是它过于复杂,与操作系统的其他部分强耦合,违反”keep simple, keep stupid“的 Unix 哲学。

systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7开始也由systemd取代了init作为默认的系统进程管理工具。

systemd所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit进行管理。比如systemctl、hostnamectl、timedatectl、localctl等命令,这些命令虽然改写了init时代用户的命令使用习惯(不再使用chkconfig、service等命令),但确实也提供了很大的便捷性。

下图为Systemd架构图

Linux 7中systemd工具详解


2. 特性说明

Systemd 新特性

  • 系统引导时实现服务并行启动
  • 按需激活进程
  • 系统状态快照
  • 基于依赖关系定义服务控制逻辑

关键特性

  • 基于socket的激活机制:socket与服务程序分离
  • 基于bus的激活机制
  • 基于device的激活机制
  • 基于path的激活机制
  • 系统快照:保存各unit的当前状态信息于持久存储设备中
  • 向后兼容sysv init脚本

不兼容

  • systemctl命令固定不变
  • 非由systemd启动的服务,systemctl无法与之通信

systemd 特点

  • 最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15…)
  • CentOS7 支持开机并行启动服务,显著提高开机启动效率
  • CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。
  • CentOS7服务的启动与停止不再使用脚本进行管理,也就是/etc/init.d下不在有脚本。
  • CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。

3. 系统管理

Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。

3.1 systemctl 命令

systemctlSystemd 的主命令,用于管理系统。

例如:


3.3 hostnamectl 命令

hostnamectl命令用于查看当前主机的信息。


3.4 localectl 命令

localectl命令用于查看本地化设置。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
Linux 7中systemd工具详解后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部