1. systemd

  • 定义systemd 是 Linux 系统中的系统和服务管理器,负责初始化系统和管理系统进程。
  • 用途:取代传统的 SysV 和 Upstart 初始化系统,用于管理系统启动流程以及守护进程。
  • 主要功能

    • 系统初始化:在系统启动时,systemd 作为第一个进程启动(PID 1),加载并初始化系统。
    • 服务管理:通过“单元” (unit) 的概念,将服务、挂载点、设备等抽象为可管理的单元。
    • 并行启动systemd 支持服务并行启动,能够加速系统的启动过程。
    • 依赖管理:能够处理复杂的服务依赖关系,确保按需启动服务。
    • 日志管理:与 journald 集成,用于记录系统日志和服务日志。
  • 单元类型

    • Service Unit:管理系统服务(如 *.service 文件)。
    • Target Unit:定义一组服务的启动顺序(类似于运行级别)。
    • Mount Unit:管理文件系统挂载点(如 *.mount 文件)。
    • 其他单元:包括 sockettimerdevice 等类型。

2. systemctl

  • 定义systemctlsystemd 提供的命令行工具,用于管理和控制 systemd 管理的各个单元。
  • 常用操作

    • 启动服务systemctl start <unit>,如 systemctl start nginx.service
    • 停止服务systemctl stop <unit>
    • 重启服务systemctl restart <unit>
    • 启用服务systemctl enable <unit>(开机自动启动)
    • 禁用服务systemctl disable <unit>
    • 查看服务状态systemctl status <unit>
    • 查看所有正在运行的服务systemctl list-units --type=service
  • 常见用法

    • 检查单元是否运行systemctl is-active <unit>
    • 检查单元是否已启用systemctl is-enabled <unit>
    • 查看服务日志:可以配合 journalctl 命令查看日志,如 journalctl -u <unit>

总结

  • systemd 是 Linux 系统的核心服务管理器,负责初始化、启动和管理系统服务。
  • systemctlsystemd 的控制工具,用于与系统的各类服务和单元进行交互,便于用户查看、控制和管理服务的状态和行为。

这种设计使 Linux 系统的服务管理更高效、模块化和易于维护。