.. _introduce_systemd: =================== systemd简介 =================== ``Systemd`` 是Linux操作系统的系统和服务器管理器。它被设计成向后兼容 ``SysV`` init脚本,并提供了一系列的诸如并行启动服务,按需激活服务,系统状态快照,或者依赖的底层服务控制逻辑等功能。在Red Hat Enterprise Linux 7中,systemd替代了以前默认使用的 ``init`` 系统。 Systemd引入了 ``systemd units`` 概念,这些通过位于目录中的单元配置文件表述并包装了有关系统服务,监听套接字,保存的系统状态快照,以及有关init系统的其他对象的信息。完整的systemd单元类型参考下表 - 可用的systemd单元类型 ============================= =============== ================================== 单元类型 文件扩展 描述 ============================= =============== ================================== 服务单元(Service unit) ``.service`` 系统服务 目标单元(Target unit) ``.target`` systemd单元的组 自动挂载单元(Automount unit) ``.automount`` 文件系统自动挂载点 设备单元(Device unit) ``.device`` 通过内核识别的一个设备文件 挂载单元(Mount unit) ``.mount`` 一个文件系统的挂载点 路径单元(Path unit) ``.path`` 在一个文件系统中的一个文件或者目录 范围单元(scope unit) ``.scope`` 一个外部创建的进程 切片单元(Slice unit) ``.slice`` 管理系统进程的层次化组织的单元组 快照单元(Snapshot unit) ``.snapshot`` systemd管理器的一个保存的状态 套接字单元(Socket unit) ``.socket`` 一个进程间通讯的套接字 交换单元(Swap unit) ``.swap`` 一个交换设备或者交换文件 计时器单元(Timer unit) ``.timer`` 一个systemd计时器 ============================= =============== ================================== - Systemd Unit位置 ============================= ============================================================================== 目录 描述 ============================= ============================================================================== ``/usr/lib/systemd/system/`` 使用RPM包安装的Systemd单元 ``/run/systemd/system/`` 运行时创建的Systemd单元。这个目录比安装系统服务单元目录的优先级高 ``/etc/systemd/system/`` 由系统管理员创建和管理的Systemd单元。这个目录比运行时创建的systemd单元优先级高 ============================= ============================================================================== 不使用 ``systemd`` ? ====================== 目前主流的Linux发行版都已经转向使用 ``systemd`` ,特别是有些桌面(GNOME)和 ``systemd`` 强绑定导致发行版不得不支持。不过,依然有一些 "小众" 发行版给予用户选择的权利: - :ref:`gentoo_linux` 可以在安装时选择 ``OpenRC`` 作为init - :ref:`lfs` 可以部署 ``sysv`` 版本 - `antiX Linux `_ 基于 :ref:`debian` 的轻量级发行版提供了 **systemd-free** 部署(我还没有使用过这个发行版) 当然,还有著名的 :ref:`freebsd` 完全不使用 ``systemd`` 参考 ====== - `10.1. Introduction to systemd `_