约 2 分钟
Systemd学习笔记

参考视频链接:https://youtu.be/Kzpm-rGAXos, https://youtu.be/N1vgvhiyq0E?list=PLtK75qxsQaMKPbuVpGuqUQYRiTwTAmqeI

systemd介绍

  • init
    • PID1 1号进程,用于启动其他事务
    • 接管孤儿进程
  • 从何而来
    • 以前的sysV脚本初始化不便于管理
  • systemd组成
    • 程序、服务、库
      • systemctl
      • journalctl
      • init
      • 进程管理
      • 网络管理(networkd)
      • 登录管理(logind)
      • 日志(journald)

单元(Unit)

  • 由systemd管理的任何实体称为单元,单元可以用于管理
    • 服务(service)
    • 套接字(socket)
    • 设备(device)
    • (自动)挂载点(Mountpoint/Automount point)
    • 交换文件(swap file)
    • 分区(partition)
    • 启动对象(targets)(类似于命名的运行级别
    • 受监视的文件系统路径
    • 外部创建的进程组
    • 依赖
  • 单元文件位置
    • /lib/systemd/system
      • 系统的
    • /usr/lib/systemd/system
      • 安装的软件提供的
    • /run/systemd/system
      • 临时的
    • /etc/systemd/system
      • 自定义的通常放在这里
    • /home/$USER/.config/systemd/system
      • 用户级别的
  • 一个service示例

Targets

  • targets可以用于划分启动期间的不同阶段,各阶段可以有很多不同的单元
  • 也是将单元分组的一种方式

依赖管理(单元排序)

  • 模糊排序
    • Wants, WantedBy
      • 最弱依赖管理方式,提示systemd应当在同一阶段启动,但是不保证先后顺序,同时不保证一定在同一阶段启动
    • Requires, RequiredBy
      • 提示systemd应当在同一阶段启动,不保证先后顺序,保证同一阶段启动
  • 明确排序
    • Before
    • After
  • 其他
    • Requisite
    • BindsTo
    • PartOf
    • Conflicts
      • 避免同时启动

Timer