【Ubuntu】systemd 及其工具

什么是 systemd

systemd 是一个用于管理 Linux 系统启动过程和系统服务的初始化系统。它是现代 Linux 发行版中广泛采用的初始化系统,负责启动和管理操作系统的各个组件。

systemd 的设计目标是提高系统启动速度、优化资源管理和提供更强大的服务管理功能。它引入了一些新的概念和功能,包括并行启动、按需启动服务、基于套接字的激活、更好的日志记录和跟踪等。

以下是 systemd 的一些主要特点和组件:

  1. 单位(Units):systemd 使用单位(units)来表示系统组件和服务。每个单位代表一个特定的系统资源或功能,例如服务、套接字、设备等。每个单位都有一个对应的配置文件,用于定义它的属性和依赖关系。

  2. systemd 套件:systemd 包含了一系列工具和服务,用于系统的管理和操作。其中一些重要的组件包括 systemd 命令行工具(如 systemctl、journalctl)、systemd 日志系统(journal)、systemd 网络管理(systemd-networkd)等。

  3. 并行启动:systemd 实现了并行启动,可以同时启动多个系统服务,提高系统启动速度。

  4. 依赖关系和顺序控制:通过单位之间的依赖关系,systemd 可以确保服务在其依赖的其他服务启动之后才启动。这样可以更精确地控制启动顺序和服务之间的关联。

  5. 套接字激活:systemd 支持基于套接字的激活,允许服务在需要时由请求者动态启动,而不是持续运行。

  6. 日志记录和跟踪:systemd 使用 journalctl 工具来记录和管理系统日志。它支持强大的日志过滤和查询功能,可以更方便地查看和分析系统日志。

systemd 的引入带来了对传统 SysV init 系统的改进,提供了更快、更灵活和更可靠的系统初始化和服务管理功能。它已经成为许多主流 Linux 发行版的默认初始化系统,如 Ubuntu、Fedora、CentOS 等。

systemd 相关工具

下面是 systemd 相关工具的简要说明和使用方法:

  1. systemd:systemd 初始化系统的主要命令,用于启动和管理系统服务,管理单位等。它可以使用 systemctl 命令来启动、停止、重启、启用、禁用和管理系统服务。

  2. systemd-analyze:用于分析系统启动时间和性能的工具。可以使用 systemd-analyze blame 命令来查看每个单位的启动时间,使用 systemd-analyze plot 命令生成启动性能图。

  3. systemd-ask-password:用于与用户交互以获取密码或其他验证信息的工具。可以使用 systemd-ask-password 命令来请求密码或其他验证信息,并将结果传递给其他命令或服务。

  4. systemd-cat:将标准输入或文件的内容输出到 systemd 日志(journal)的命令。可以使用重定向或管道将消息发送到 journal,例如 echo "Hello" | systemd-cat

  5. systemd-cgls:用于显示 cgroups 层次结构的命令。可以使用 systemd-cgls 命令来列出当前系统中的 cgroups 以及它们的层次关系。

  6. systemd-cgtop:用于显示正在运行的 cgroups 中的进程和资源使用情况的命令。使用 systemd-cgtop 命令可以实时监视 cgroups 中的进程资源。

  7. systemd-delta:用于比较和显示文件和单位之间的差异的工具。可以使用 systemd-delta 命令来比较系统配置文件和单位文件的更改情况。

  8. systemd-tty-ask-password-agent:系统密码代理程序,用于在 tty 终端上向用户请求密码。它与 systemd-ask-password 命令一起使用,用于安全地处理密码输入。

  9. systemd-detect-virt:用于检测当前系统是否运行在虚拟化环境中的工具。可以使用 systemd-detect-virt 命令来检测系统是否是在虚拟机或容器中运行。

  10. systemd-escape:用于转义字符串以在 systemd 配置文件中使用。可以使用 systemd-escape 命令将特殊字符转换为适合在配置文件中使用的形式。

  11. systemd-hwdb:硬件数据库工具,用于管理和查询 systemd 的硬件数据库。它用于设备和驱动程序的匹配和识别。

  12. systemd-id128:用于生成或处理 128 位的唯一标识符(UUID)的工具。

  13. systemd-inhibit:用于阻止或延迟系统操作的工具。可以使用 systemd-inhibit 命令来阻止休眠、关机、重启等操作。

  14. systemd-machine-id-setup:用于生成或设置机器 ID 的工具。可以使用 systemd-machine-id-setup 命令来生成新的机器 ID 或设置现有的机器 ID。

  15. systemd-mount:用于挂载和卸载文件系统的工具。可以使用 systemd-mount 命令来挂载或卸载文件系统,例如 systemd-mount /dev/sdb1 /mnt

  16. systemd-notify:用于向 systemd 发送状态通知的工具。可以使用 systemd-notify 命令发送自定义状态和通知给 systemd。

  17. systemd-path:用于查询系统文件路径的工具。可以使用 systemd-path 命令来获取各种系统路径,如配置文件路径、单元文件路径等。

  18. systemd-resolve:用于系统的 DNS 解析和域名解析的工具。可以使用 systemd-resolve 命令来查询 DNS 信息、解析域名等。

  19. systemd-run:用于在不创建新服务单元文件的情况下运行临时任务的命令。可以使用 systemd-run 命令在不创建新服务单元文件的情况下运行临时任务,例如 systemd-run --unit=my-service /usr/bin/my-command

  20. systemd-socket-activate:用于在需要时动态激活套接字的工具。可以使用 systemd-socket-activate 命令来启动和管理套接字单元。

  21. systemd-stdio-bridge:用于在标准输入/输出之间转发数据的工具。它可以将数据从一个程序的标准输出传递到另一个程序的标准输入。

  22. systemd-sysusers:用于管理和创建系统用户和组的工具。可以使用 systemd-sysusers 命令来创建、修改和删除系统用户和组。

  23. systemd-tmpfiles:用于管理临时文件和目录的工具。可以使用 systemd-tmpfiles 命令来创建、清理和维护临时文件和目录。

  24. systemd-umount:用于卸载文件系统的工具。可以使用 systemd-umount 命令来卸载已挂载的文件系统,例如 systemd-umount /mnt

这些工具都具有不同的功能和用途,用于系统管理和操作。您可以在终端中使用相应的命令加上适当的参数来调用这些工具,并根据每个工具的特定用法提供必要的参数和选项。您可以使用各个工具的 man 页面或命令帮助来获取更详细的信息和使用示例,例如 man systemd-analyzesystemd-ask-password --help

环境

OS : unbuntu 20.04

猜你喜欢

转载自blog.csdn.net/m0_47406832/article/details/130337176