Manpages

NAME

systemctl - 控 制 systemd 系 统 与 服 务 管 理 器

SYNOPSIS

systemctl [OPTIONS...] COMMAND [NAME...]

描 述

systemctl 可 用 于 检 查 和 控 制 systemd(1) 系 统 与 服 务 管 理 器 的 状 态 。

选 项

能 够 识 别 的 命 令 行 选 项 如 下 :

-t, --type= 参 数 必 须 是 一 个 逗 号 分 隔 的 单 元 类 型 列 表 (例 如 "service,socket")。 在 列 出 单 元 时 , 如 果 使 用 了 此 选 项 , 那 么 表 示 只 列 出 指 定 类 型 的 单 元 , 否 则 将 列 出 所 有 类 型 的 单 元 。 此 外 , 作 为 特 例 , 使 用 --type=help 表 示 在 列 出 所 有 可 用 的 单 元 类 型 之 后 退 出 。

--state= 参 数 必 须 是 一 个 逗 号 分 隔 的 单 元 状 态 列 表 (只 有 LOAD, ACTIVE, SUB 三 大 类 )。 在 列 出 单 元 时 , 如 果 使 用 了 此 选 项 , 那 么 表 示 只 列 出 处 于 指 定 状 态 的 单 元 , 否 则 将 列 出 所 有 状 态 的 单 元 。 例 如 , 使 用 --state=failed 表 示 只 列 出 处 于 失 败 (failed)状 态 的 单 元 。 此 外 , 作 为 特 例 , 使 用 --state=help 表 示 在 列 出 所 有 可 用 的 单 元 状 态 之 后 退 出 。

-p, --property= 参 数 必 须 是 一 个 逗 号 分 隔 的 属 性 名 称 列 表 (例 如 "MainPID,LogLevel"), 表 示 在 使 用 show 命 令 显 示 属 性 时 , 仅 显 示 参 数 中 列 出 的 属 性 。 如 果 未 指 定 此 选 项 , 那 么 将 显 示 全 部 属 性 。 如 果 多 次 指 定 此 选 项 , 那 么 相 当 于 将 这 些 选 项 的 参 数 用 逗 号 连 接 起 来 。 不 带 参 数 的 systemctl show 命 令 将 会 显 示 管 理 器 (systemd)自 身 的 属 性 (参 见 systemd-system.conf(5) 手 册 )。 不 同 类 型 的 单 元 拥 有 不 同 的 属 性 集 , 指 定 任 意 一 个 单 元 (即 使 并 不 存 在 ), 都 可 以 查 看 此 类 单 元 的 所 有 属 性 。 类 似 的 , 即 使 指 定 了 一 个 不 存 在 的 任 务 (job), 也 能 查 看 任 务 的 所 有 属 性 。 每 种 单 元 能 够 拥 有 的 属 性 集 分 散 在 systemd.unit(5) 手 册 以 及 此 类 单 元 专 属 的 手 册 中 , 例 如 systemd.service(5), systemd.socket(5) 等 等 。

-a, --all 在 列 出 单 元 时 , 表 示 列 出 所 有 已 加 载 的 单 元 。 在 使 用 show 命 令 显 示 属 性 时 , 表 示 显 示 所 有 属 性 , 而 不 管 这 些 属 性 是 否 已 被 设 置 。 如 果 想 要 列 出 所 有 已 安 装 的 单 元 , 请 使 用 list-unit-files 命 令 。

-r, --recursive 在 列 出 单 元 时 , 同 时 也 以 "容 器 名 :单 元 名 " 格 式 列 出 本 地 容 器 中 的 单 元 。

--reverse 在 使 用 list-dependencies 命 令 时 , 仅 显 示 单 元 之 间 的 反 向 依 赖 关 系 。 也 就 是 仅 显 示 WantedBy=, RequiredBy=, PartOf=, BoundBy= 系 列 (而 不 是 Wants= 系 列 )的 依 赖 关 系 。

--after 在 使 用 list-dependencies 命 令 时 , 仅 显 示 在 先 后 顺 序 上 早 于 指 定 单 元 的 那 些 单 元 , 也 就 是 递 归 的 列 出 After= 中 的 单 元 。 注 意 , 每 个 After= 依 赖 都 会 自 动 生 成 一 个 对 应 的 Before= 依 赖 。 单 元 之 间 的 先 后 顺 序 既 可 以 被 显 式 的 明 确 设 定 , 也 可 以 由 其 他 指 令 隐 式 的 自 动 生 成 (例 如 WantedBy=RequiresMountsFor=)。 无 论 是 隐 式 自 动 生 成 的 先 后 顺 序 , 还 是 显 式 明 确 设 定 的 先 后 顺 序 , 都 会 被 list-dependencies 命 令 显 示 出 来 。

--before 在 使 用 list-dependencies 命 令 时 , 仅 显 示 在 先 后 顺 序 上 晚 于 指 定 单 元 的 那 些 单 元 , 也 就 是 递 归 的 列 出 Before= 中 的 单 元 。

-l, --fullstatus, list-units, list-jobs, list-timers 命 令 的 输 出 中 , 显 示 完 整 的 单 元 名 称 、 进 程 树 项 目 、 日 志 输 出 、 单 元 描 述 , 也 就 是 不 省 略 或 截 断 它 们 。

--value 在 使 用 show 命 令 显 示 属 性 时 , 仅 显 示 属 性 值 , 而 不 显 示 属 性 名 及 等 号 。

--show-types 在 使 用 list-sockets 命 令 列 出 套 接 字 (socket)时 , 同 时 显 示 套 接 字 的 类 型 。

--job-mode= 在 向 任 务 队 列 中 添 加 新 任 务 (job)时 , 如 何 处 理 队 列 中 已 有 的 任 务 。 可 设 为 "fail", "replace", "replace-irreversibly", "isolate", "ignore-dependencies", "ignore-requirements", "flush" 之 一 。 仅 在 使 用 isolate 命 令 时 , 默 认 值 为 "isolate" 且 不 能 更 改 , 对 于 其 他 命 令 , 默 认 值 皆 为 "replace" 。

"fail" 表 示 当 新 任 务 与 队 列 中 已 有 的 任 务 冲 突 时 , 该 命 令 将 失 败 。 所 谓 "冲 突 "的 含 义 是 : 导 致 队 列 中 已 有 的 某 个 启 动 操 作 转 变 为 停 止 操 作 , 或 者 相 反 。

"replace" 表 示 将 队 列 中 冲 突 的 任 务 替 换 为 新 任 务 。

"replace-irreversibly" 与 "replace" 类 似 , 不 同 之 处 在 于 将 新 任 务 同 时 标 记 为 "不 可 撤 销 ", 也 就 是 即 使 未 来 与 其 他 新 添 加 的 任 务 发 生 冲 突 也 不 会 被 撤 消 。 注 意 , 这 个 "不 可 撤 销 "的 任 务 , 仍 然 可 以 使 用 cancel 命 令 显 式 的 撤 消 。

"isolate" 仅 用 于 启 动 操 作 , 表 示 在 该 单 元 启 动 之 后 , 所 有 其 他 单 元 都 会 被 停 止 。 当 使 用 isolate 命 令 的 时 候 , 这 是 默 认 值 , 且 不 能 更 改 。

"flush" 表 示 撤 消 队 列 中 已 有 的 全 部 任 务 , 然 后 加 入 新 任 务 。

"ignore-dependencies" 表 示 忽 略 新 任 务 的 所 有 依 赖 关 系 (包 括 先 后 顺 序 依 赖 ), 立 即 执 行 请 求 的 操 作 。 如 果 成 功 , 那 么 所 有 被 依 赖 的 单 元 及 先 后 顺 序 都 将 被 忽 略 。 仅 用 于 调 试 目 的 , 切 勿 用 于 常 规 目 的 。

"ignore-requirements" 类 似 于 "ignore-dependencies" , 表 示 仅 忽 略 必 需 的 依 赖 (但 依 然 遵 守 单 元 之 间 的 先 后 顺 序 )。

--fail 这 是 --job-mode=fail 的 快 捷 方 式 。 当 与 kill 命 令 一 起 使 用 时 , 表 示 如 果 没 有 任 何 单 元 被 杀 死 , 那 么 将 会 导 致 报 错 。

-i, --ignore-inhibitors 当 关 闭 或 休 眠 系 统 时 , 忽 略 inhibitor 锁 。 应 用 程 序 可 以 利 用 inhibitor 锁 防 止 某 些 重 要 操 作 (例 如 刻 录 光 盘 )被 关 机 或 休 眠 打 断 。 任 何 用 户 都 可 以 获 取 inhibitor 锁 , 但 是 只 有 特 权 用 户 可 以 撤 消 或 者 忽 略 它 。 正 常 情 况 下 , 关 机 与 休 眠 动 作 会 因 为 inhibitor 锁 的 存 在 而 失 败 (无 论 该 动 作 是 否 由 特 权 用 户 发 起 ), 同 时 所 有 已 激 活 的 inhibitor 锁 也 都 会 被 显 示 出 来 。 但 如 果 使 用 了 此 选 项 , 那 么 inhibitor 锁 将 被 忽 略 , 关 机 或 休 眠 将 会 照 常 执 行 , 同 时 也 不 再 显 示 这 些 已 激 活 的 锁 。

-q, --quiet 安 静 模 式 , 也 就 是 禁 止 输 出 任 何 信 息 到 标 准 输 出 。 注 意 : (1)这 并 不 适 用 于 输 出 信 息 是 唯 一 结 果 的 命 令 (例 如 show); (2)显 示 在 标 准 错 误 上 的 出 错 信 息 永 远 不 会 被 屏 蔽 。

--no-block 默 认 为 阻 塞 模 式 , 也 就 是 任 务 经 过 校 验 、 排 入 任 务 队 列 之 后 , systemctl 必 须 一 直 等 到 单 元 启 动 /停 止 完 成 才 算 执 行 结 束 。 使 用 此 选 项 之 后 , 将 变 为 无 阻 塞 模 式 , 也 就 是 任 务 排 入 队 列 之 后 , 即 算 systemctl 执 行 结 束 (不 必 等 待 单 元 启 动 /停 止 完 成 )。

--user 与 当 前 调 用 用 户 的 用 户 服 务 管 理 器 (systemd 用 户 实 例 )通 信 , 而 不 是 默 认 的 系 统 服 务 管 理 器 (systemd 系 统 实 例 )。

--system 与 系 统 服 务 管 理 器 (systemd 系 统 实 例 )通 信 , 这 是 默 认 值 。

--no-wall 在 执 行 halt, poweroff, reboot 动 作 前 , 不 发 送 警 告 消 息 。

--global 表 示 在 全 局 用 户 单 元 目 录 (通 常 是 /etc/systemd/user/)上 操 作 , 从 而 全 局 的 操 作 一 个 用 户 单 元 , 这 会 影 响 到 所 有 未 来 登 入 的 用 户 。

--no-reloadenable, disable, edit 命 令 连 用 , 表 示 在 完 成 操 作 之 后 不 重 新 加 载 systemd 守 护 进 程 的 配 置 (默 认 会 自 动 重 新 加 载 ), 相 当 于 不 自 动 执 行 daemon-reload 命 令 。

--no-ask-passwordstart 及 其 相 关 命 令 (reload, restart, try-restart, reload-or-restart, reload-or-try-restart, isolate)连 用 , 表 示 不 询 问 密 码 。 单 元 在 启 动 时 可 能 要 求 输 入 密 码 (例 如 用 于 解 密 证 书 或 挂 载 加 密 文 件 系 统 )。 当 未 使 用 此 选 项 时 , systemctl 将 会 在 终 端 上 向 用 户 询 问 所 需 的 密 码 。 如 果 使 用 了 此 选 项 , 那 么 必 须 通 过 其 他 方 法 提 供 密 码 (例 如 通 过 密 码 代 理 程 序 ), 否 则 单 元 可 能 会 启 动 失 败 。 使 用 此 选 项 还 会 导 致 在 验 证 用 户 身 份 时 , 不 能 使 用 从 终 端 输 入 密 码 的 方 式 。

--kill-who=kill 命 令 连 用 , 表 示 向 哪 个 进 程 发 送 信 号 (--signal=)。 可 设 为 main(仅 杀 死 主 进 程 ) 或 control(仅 杀 死 控 制 进 程 ) 或 all(杀 死 全 部 进 程 , 这 是 默 认 值 )。 所 谓 "主 进 程 "是 指 定 义 了 单 元 生 存 期 的 进 程 。 所 谓 "控 制 进 程 "是 指 用 于 改 变 单 元 状 态 的 进 程 。 例 如 , 所 有 ExecStartPre=, ExecStop=, ExecReload= 启 动 的 进 程 都 是 控 制 进 程 。 注 意 , 对 于 一 个 单 元 来 说 , 同 一 时 刻 只 能 存 在 一 个 控 制 进 程 , 因 为 同 一 时 刻 只 能 存 在 一 个 状 态 变 化 的 动 作 。 对 于 Type=forking 类 型 的 服 务 来 说 , ExecStart= 启 动 的 初 始 进 程 就 是 一 个 控 制 进 程 , 而 此 进 程 随 后 派 生 出 来 作 为 守 护 进 程 运 行 的 那 个 进 程 , 则 是 该 单 元 的 主 进 程 (如 果 它 可 以 被 检 测 到 的 话 )。 但 对 于 其 他 类 型 的 服 务 来 说 , ExecStart= 启 动 的 初 始 进 程 反 而 始 终 是 该 服 务 的 主 进 程 。 一 个 服 务 单 元 可 以 包 含 以 下 进 程 : 零 个 或 一 个 主 进 程 , 零 个 或 一 个 控 制 进 程 , 任 意 数 量 (可 以 是 零 个 )的 其 他 进 程 。 注 意 , 不 是 所 有 类 型 的 单 元 都 含 有 上 述 三 种 进 程 。 例 如 , 对 于 mount 类 型 的 单 元 来 说 , 就 仅 有 控 制 进 程 (/usr/bin/mount 与 /usr/bin/umount), 而 没 有 主 进 程 。 默 认 值 是 all

-s, --signal=kill 命 令 连 用 , 表 示 向 目 标 进 程 发 送 哪 个 信 号 。 必 须 是 SIGTERM, SIGINT, SIGSTOP 之 类 众 所 周 知 的 信 号 。 默 认 值 为 SIGTERM

.RE

-f, --force 当 与 enable 命 令 连 用 时 , 表 示 复 盖 所 有 现 存 的 同 名 符 号 链 接 。 当 与 edit 命 令 连 用 时 , 表 示 创 建 所 有 尚 不 存 在 的 指 定 单 元 。 当 与 halt, poweroff, reboot, kexec 命 令 连 用 时 , 表 示 跳 过 单 元 的 正 常 停 止 步 骤 , 强 制 直 接 执 行 关 机 操 作 。 如 果 仅 使 用 此 选 项 一 次 , 那 么 所 有 进 程 都 将 被 强 制 杀 死 , 并 且 所 有 文 件 系 统 都 将 被 卸 载 (或 以 只 读 模 式 重 新 挂 载 )。 这 可 以 算 是 一 种 野 蛮 但 还 算 相 对 比 较 安 全 的 快 速 关 机 或 重 启 的 方 法 。 如 果 连 续 两 次 使 用 此 选 项 , 那 么 将 既 不 杀 死 进 程 , 也 不 卸 载 文 件 系 统 , 而 是 直 接 强 制 关 机 或 重 启 (但 kexec 除 外 )。 警 告 : 连 续 两 次 使 用 --force 选 项 将 会 导 致 数 据 丢 失 、 文 件 系 统 不 一 致 等 不 良 后 果 。 注 意 , 如 果 连 续 两 次 使 用 --force 选 项 , 那 么 所 有 操 作 都 将 由 systemctl 自 己 直 接 执 行 , 而 不 会 与 systemd 进 程 通 信 。 这 意 味 着 , 即 使 systemd 进 程 已 经 僵 死 或 者 崩 溃 , 连 续 两 次 使 用 --force 选 项 所 指 定 的 操 作 依 然 能 够 执 行 成 功 。

--message= 当 与 halt, poweroff, reboot, kexec 命 令 一 起 使 用 时 , 用 于 设 置 一 个 解 释 为 什 么 进 行 该 操 作 的 字 符 串 。 此 字 符 串 将 与 默 认 的 关 机 消 息 一 起 记 录 到 日 志 中 。

--now 当 与 enable 命 令 连 用 时 , 表 示 同 时 还 要 启 动 该 单 元 。 当 与 disablemask 命 令 连 用 时 , 表 示 同 时 还 要 停 止 该 单 元 。

--root=enable/disable/is-enabled 等 相 关 命 令 连 用 , 用 于 设 置 寻 找 单 元 文 件 时 的 根 目 录 。

--runtime 当 与 enable, disable, edit 等 相 关 命 令 连 用 时 , 表 示 仅 作 临 时 变 更 , 从 而 确 保 这 些 变 更 会 在 重 启 后 丢 失 。 这 意 味 着 所 做 的 变 更 将 会 保 存 在 /run 目 录 下 (立 即 生 效 但 重 启 后 该 目 录 的 内 容 将 全 部 丢 失 ), 而 不 是 保 存 在 /etc 目 录 下 。 类 似 的 , 当 与 set-property 命 令 连 用 时 , 所 做 的 变 更 亦 是 临 时 的 , 这 些 变 更 在 重 启 后 亦 会 丢 失 。

--preset-mode=presetpreset-all 命 令 连 用 , 可 设 为 下 列 值 之 一 : "full"(默 认 值 ) 表 示 完 全 按 照 预 设 规 则 启 用 与 停 用 各 单 元 。 "enable-only" 表 示 仅 按 照 预 设 规 则 启 用 各 单 元 。 "disable-only" 表 示 仅 按 照 预 设 规 则 停 用 各 单 元 。

-n, --lines=status 命 令 连 用 , 控 制 日 志 的 显 示 行 数 (从 最 新 的 一 行 开 始 计 算 )。 必 须 设 为 一 个 正 整 数 , 默 认 值 是 "10"。

-o, --output=status 命 令 连 用 , 控 制 日 志 的 显 示 格 式 。 详 见 journalctl(1) 手 册 。 默 认 值 为 "short" 。

.RE

--firmware-setupreboot 命 令 连 用 , 要 求 系 统 主 板 的 UEFI固 件 重 启 到 安 装 模 式 。 仅 支 持 某 些 以 UEFI模 式 启 动 的 主 板 。

--plainlist-dependencies, list-units, list-machines 命 令 连 用 , 将 输 出 从 默 认 的 树 形 变 为 列 表 型 。

-H, --host= 操 作 指 定 的 远 程 主 机 。 可 以 仅 指 定 一 个 主 机 名 (hostname), 也 可 以 使 用 "username@hostname" 格 式 。 hostname 后 面 还 可 以 加 上 容 器 名 (以 冒 号 分 隔 ), 也 就 是 形 如 "hostname:container" 的 格 式 , 以 表 示 直 接 连 接 到 指 定 主 机 的 指 定 容 器 内 。 操 作 将 通 过 SSH协 议 进 行 , 以 确 保 安 全 。 可 以 通 过 machinectl -H HOST 命 令 列 出 远 程 主 机 上 的 所 有 容 器 名 称 。

-M, --machine= 在 本 地 容 器 内 执 行 操 作 。 必 须 明 确 指 定 容 器 的 名 称 。

--no-pager 不 将 程 序 的 输 出 内 容 管 道 (pipe)给 分 页 程 序 。

--no-legend 不 输 出 列 标 题 , 也 就 是 不 在 输 出 列 表 的 头 部 和 尾 部 显 示 字 段 的 名 称 。

-h, --help 显 示 简 短 的 帮 助 信 息 并 退 出 。

--version 显 示 简 短 的 版 本 信 息 并 退 出 。

命 令

模 式 (PATTERN)参 数 的 语 法 与 文 件 名 匹 配 语 法 类 似 : 用 "*"匹 配 任 意 数 量 的 字 符 , 用 "?"匹 配 单 个 字 符 , 用 "[]"匹 配 字 符 范 围 。 如 果 给 出 了 模 式 (PATTERN)参 数 , 那 么 表 示 该 命 令 仅 作 用 于 单 元 名 称 与 至 少 一 个 模 式 相 匹 配 的 单 元 。 单 元 命 令

list-units [PATTERN...] 列 出 systemd 已 加 载 的 单 元 。 除 非 明 确 使 用 --all 选 项 列 出 全 部 单 元 (包 括 : 直 接 引 用 的 单 元 、 出 于 依 赖 关 系 而 被 引 用 的 单 元 、 活 动 的 单 元 、 失 败 的 单 元 ), 否 则 默 认 仅 列 出 : 活 动 的 单 元 、 失 败 的 单 元 、 正 处 于 任 务 队 列 中 的 单 元 。 如 果 给 出 了 模 式 (PATTERN)参 数 , 那 么 表 示 该 命 令 仅 作 用 于 单 元 名 称 与 至 少 一 个 模 式 相 匹 配 的 单 元 。 还 可 以 通 过 --type=--state= 选 项 过 滤 要 列 出 的 单 元 。 这 是 默 认 命 令 。

list-sockets [PATTERN...] 列 出 已 加 载 的 套 接 字 (socket)单 元 , 并 按 照 监 听 地 址 排 序 。 如 果 给 出 了 模 式 (PATTERN)参 数 , 那 么 表 示 该 命 令 仅 作 用 于 单 元 名 称 与 至 少 一 个 模 式 相 匹 配 的 单 元 。 该 命 令 的 输 出 大 致 像 下 面 这 样 子 :

LISTEN UNIT ACTIVATES
/dev/initctl systemd-initctl.socket systemd-initctl.service
...
[::]:22 sshd.socket sshd.service
kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service

5 sockets listed. 注 意 : 因 为 监 听 地 址 中 有 可 能 包 含 空 格 , 所 以 不 适 合 使 用 程 序 分 析 该 命 令 的 输 出 。 参 见 --show-types, --all, --state= 选 项 。

list-timers [PATTERN...] 列 出 已 加 载 的 定 时 器 (timer)单 元 , 并 按 照 下 次 执 行 的 时 间 点 排 序 。 如 果 给 出 了 模 式 (PATTERN)参 数 , 那 么 表 示 该 命 令 仅 作 用 于 单 元 名 称 与 至 少 一 个 模 式 相 匹 配 的 单 元 。 参 见 --all--state= 选 项 。

start PATTERN... 启 动 (activate)指 定 的 已 加 载 单 元 (无 法 启 动 未 加 载 的 单 元 )。 如 果 某 个 单 元 未 被 启 动 , 又 没 有 处 于 失 败 (failed)状 态 , 那 么 通 常 是 因 为 该 单 元 没 有 被 加 载 , 所 以 根 本 没 有 被 模 式 匹 配 到 。 此 外 , 对 于 从 模 板 实 例 化 而 来 的 单 元 , 因 为 systemd 会 在 其 尚 未 启 动 前 忽 略 它 们 , 又 因 为 模 式 (PATTERN)参 数 仅 能 匹 配 已 加 载 单 元 的 "主 名 称 "(不 含 单 元 的 "别 名 "), 所 以 , 在 这 个 命 令 中 使 用 包 含 通 配 符 的 模 式 并 没 有 多 少 实 际 意 义 。

stop PATTERN... 停 止 (deactivate)指 定 的 单 元

reload PATTERN... 要 求 指 定 的 单 元 重 新 加 载 它 们 的 配 置 。 注 意 , 这 里 所 说 的 "配 置 "是 服 务 进 程 专 属 的 配 置 (例 如 httpd.conf 之 类 ), 而 不 是 systemd 的 "单 元 文 件 "。 如 果 你 想 重 新 加 载 systemd 的 "单 元 文 件 ", 那 么 应 该 使 用 daemon-reload 命 令 。 以 Apache 为 例 , 该 命 令 会 导 致 重 新 加 载 httpd.conf 文 件 , 而 不 是 apache.service 文 件 。 不 要 将 此 命 令 与 daemon-reload 命 令 混 淆 。

restart PATTERN... 重 新 启 动 指 定 的 单 元 。 若 指 定 的 单 元 尚 未 启 动 , 则 启 动 它 们 。

try-restart PATTERN... 重 新 启 动 指 定 的 已 启 动 单 元 。 注 意 , 若 指 定 的 单 元 尚 未 启 动 , 则 不 做 任 何 操 作 。

reload-or-restart PATTERN... 首 先 尝 试 重 新 加 载 指 定 单 元 的 进 程 专 属 配 置 , 对 于 那 些 加 载 失 败 的 单 元 , 再 继 续 尝 试 重 新 启 动 它 们 。 若 指 定 的 单 元 尚 未 启 动 , 则 启 动 它 们 。

try-reload-or-restart PATTERN... 首 先 尝 试 重 新 加 载 指 定 单 元 的 进 程 专 属 配 置 , 对 于 那 些 加 载 失 败 的 单 元 , 再 继 续 尝 试 重 新 启 动 它 们 。 注 意 , 若 指 定 的 单 元 尚 未 启 动 , 则 不 做 任 何 操 作 。

isolate NAME 启 动 指 定 的 单 元 以 及 所 有 依 赖 单 元 , 同 时 停 止 所 有 其 他 单 元 。 如 果 没 有 给 出 单 元 的 后 缀 名 , 那 么 相 当 于 以 ".target" 作 为 后 缀 名 。 这 类 似 于 传 统 上 切 换 SysV运 行 级 的 概 念 。 该 命 令 会 立 即 停 止 所 有 在 新 目 标 单 元 中 不 需 要 的 进 程 , 这 其 中 可 能 包 括 当 前 正 在 运 行 的 图 形 环 境 以 及 正 在 使 用 的 终 端 。 注 意 , 该 命 令 仅 可 用 于 AllowIsolate=yes 的 单 元 。 参 见 systemd.unit(5) 手 册 。

kill PATTERN... 向 指 定 单 元 的 --kill-who= 进 程 发 送 --signal= 信 号 。

is-active PATTERN... 检 查 指 定 的 单 元 中 , 是 否 有 处 于 活 动 (active)状 态 的 单 元 。 如 果 存 在 至 少 一 个 处 于 活 动 (active)状 态 的 单 元 , 那 么 返 回 "0"值 , 否 则 返 回 非 零 值 。 除 非 同 时 使 用 了 --quiet 选 项 , 否 则 , 此 命 令 还 会 在 标 准 输 出 上 显 示 单 元 的 状 态 。

is-failed PATTERN... 检 查 指 定 的 单 元 中 , 是 否 有 处 于 失 败 (failed)状 态 的 单 元 。 如 果 存 在 至 少 一 个 处 于 失 败 (failed)状 态 的 单 元 , 那 么 返 回 "0"值 , 否 则 返 回 非 零 值 。 除 非 同 时 使 用 了 --quiet 选 项 , 否 则 , 此 命 令 还 会 在 标 准 输 出 上 显 示 单 元 的 状 态 。

status [PATTERN...|PID...] 如 果 指 定 了 单 元 , 那 么 显 示 指 定 单 元 的 运 行 时 状 态 信 息 , 以 及 这 些 单 元 最 近 的 日 志 数 据 。 如 果 指 定 了 PID, 那 么 显 示 指 定 PID所 属 单 元 的 运 行 时 状 态 信 息 , 以 及 这 些 单 元 最 近 的 日 志 数 据 。 如 果 未 指 定 任 何 单 元 或 PID, 那 么 显 示 整 个 系 统 的 状 态 信 息 , 此 时 若 与 --all 连 用 , 则 同 时 显 示 所 有 已 加 载 单 元 (可 以 用 -t 限 定 单 元 类 型 )的 状 态 信 息 。 此 命 令 用 于 输 出 人 类 易 读 的 结 果 , 不 要 将 其 用 于 程 序 分 析 (应 该 使 用 show 命 令 )。 除 非 使 用 了 --lines--full 选 项 , 否 则 默 认 只 输 出 10行 日 志 , 并 且 超 长 的 部 分 会 被 省 略 号 截 断 。 此 外 , journalctl --unit=NAMEjournalctl --user-unit=NAME 也 会 对 超 长 的 消 息 使 用 类 似 的 省 略 号 截 断 。

show [PATTERN...|JOB...] 以 "属 性 =值 "的 格 式 显 示 指 定 单 元 或 任 务 的 所 有 属 性 。 单 元 用 其 名 称 表 示 , 而 任 务 则 用 其 id表 示 。 如 果 没 有 指 定 任 何 单 元 或 任 务 , 那 么 显 示 管 理 器 (systemd)自 身 的 属 性 。 除 非 使 用 了 --all 选 项 , 否 则 默 认 不 显 示 属 性 值 为 空 的 属 性 。 可 以 使 用 --property= 选 项 限 定 仅 显 示 特 定 的 属 性 。 此 命 令 的 输 出 适 合 用 于 程 序 分 析 , 而 不 适 合 被 人 类 阅 读 (应 该 使 用 status 命 令 )。

cat PATTERN... 显 示 指 定 单 元 的 单 元 文 件 内 容 。 在 显 示 每 个 单 元 文 件 的 内 容 之 前 , 会 额 外 显 示 一 行 单 元 文 件 的 绝 对 路 径 。

set-property NAME ASSIGNMENT... 在 运 行 时 修 改 单 元 的 属 性 值 。 主 要 用 于 修 改 单 元 的 资 源 控 制 属 性 值 而 无 需 直 接 修 改 单 元 文 件 。 并 非 所 有 属 性 都 可 以 在 运 行 时 被 修 改 , 但 大 多 数 资 源 控 制 属 性 (参 见 systemd.resource-control(5))可 以 。 所 作 修 改 会 立 即 生 效 , 并 永 久 保 存 在 磁 盘 上 , 以 确 保 永 远 有 效 。 但 是 如 果 使 用 了 --runtime 选 项 , 那 么 此 修 改 仅 临 时 有 效 , 下 次 重 启 此 单 元 后 , 将 会 恢 复 到 原 有 的 设 置 。 设 置 属 性 的 语 法 与 单 元 文 件 中 的 写 法 相 同 。 例 如 : systemctl set-property foobar.service CPUShares=777 注 意 , 此 命 令 可 以 同 时 修 改 多 个 属 性 值 , 只 需 依 次 将 各 个 属 性 用 空 格 分 隔 即 可 。 与 单 元 文 件 中 的 规 则 相 同 , 设 为 空 表 示 清 空 当 前 已 存 在 的 列 表 。

help PATTERN...|PID... 显 示 指 定 单 元 的 手 册 页 (若 存 在 )。 指 定 PID表 示 显 示 该 进 程 所 属 单 元 的 手 册 页 (若 存 在 )。

reset-failed [PATTERN...] 重 置 指 定 单 元 的 失 败 (failed)状 态 。 如 果 未 指 定 任 何 单 元 , 则 重 置 所 有 单 元 的 失 败 (failed)状 态 。 当 某 个 单 元 因 为 某 种 原 因 操 作 失 败 (例 如 退 出 状 态 码 不 为 零 或 进 程 被 强 制 杀 死 或 启 动 超 时 ), 将 会 自 动 进 入 失 败 (failed)状 态 , 退 出 状 态 码 与 导 致 故 障 的 原 因 将 被 记 录 到 日 志 中 以 方 便 日 后 排 查 。

list-dependencies [NAME] 显 示 单 元 的 依 赖 关 系 。 也 就 是 显 示 由 Requires=, Requisite=, ConsistsOf=, Wants=, BindsTo= 所 形 成 的 依 赖 关 系 。 如 果 没 有 明 确 指 定 单 元 的 名 称 , 那 么 表 示 显 示 default.target 的 依 赖 关 系 树 。 默 认 情 况 下 , 仅 以 递 归 方 式 显 示 target 单 元 的 依 赖 关 系 树 , 而 对 于 其 他 类 型 的 单 元 , 仅 显 示 一 层 依 赖 关 系 (不 递 归 )。 但 如 果 使 用 了 --all 选 项 , 那 么 将 对 所 有 类 型 的 单 元 都 强 制 递 归 的 显 示 完 整 的 依 赖 关 系 树 。 还 可 以 使 用 --reverse, --after, --before 选 项 指 定 仅 显 示 特 定 类 型 的 依 赖 关 系 。 单 元 文 件 命 令
list-unit-files [
PATTERN...] 列 出 所 有 已 安 装 的 单 元 文 件 及 其 启 用 状 态 (相 当 于 同 时 使 用 了 is-enabled 命 令 )。 如 果 给 出 了 模 式 (PATTERN)参 数 , 那 么 表 示 该 命 令 仅 作 用 于 单 元 文 件 名 称 与 至 少 一 个 模 式 相 匹 配 的 单 元 (仅 匹 配 文 件 名 , 不 匹 配 路 径 )。

enable NAME..., enable PATH... 启 用 指 定 的 单 元 或 单 元 实 例 (多 数 时 候 相 当 于 将 这 些 单 元 设 为 "开 机 时 自 动 启 动 "或 "插 入 某 个 硬 件 时 自 动 启 动 ")。 这 将 会 按 照 单 元 文 件 中 "[Install]" 小 节 的 指 示 , 在 例 如 /etc/systemd/system/multi-user.target.wants/ 这 样 的 目 录 中 , 创 建 指 向 单 元 文 件 自 身 的 软 链 接 。 创 建 完 软 连 接 之 后 , systemd 将 会 自 动 重 新 加 载 自 身 的 配 置 (相 当 于 执 行 daemon-reload 命 令 ), 以 确 保 所 做 的 变 更 立 即 生 效 。 注 意 , 除 非 同 时 使 用 了 --now 选 项 (相 当 于 同 时 执 行 start 命 令 ), 否 则 启 用 一 个 单 元 并 不 会 导 致 该 单 元 被 启 动 。 注 意 , 对 于 形 如 foo [AT] bar.service 这 样 的 单 元 实 例 , 软 链 接 自 身 的 文 件 名 是 实 例 化 之 后 的 单 元 名 称 , 但 是 软 连 接 所 指 向 的 目 标 文 件 则 是 该 单 元 的 模 板 文 件 。 如 果 此 命 令 的 参 数 是 一 个 有 效 的 单 元 名 称 (NAME), 那 么 将 自 动 搜 索 所 有 单 元 目 录 。 如 果 此 命 令 的 参 数 是 一 个 单 元 文 件 的 绝 对 路 径 (PATH), 那 么 将 直 接 使 用 指 定 的 单 元 文 件 。 如 果 参 数 是 一 个 位 于 标 准 单 元 目 录 之 外 的 单 元 文 件 , 那 么 将 会 在 标 准 单 元 目 录 中 额 外 创 建 一 个 指 向 此 单 元 文 件 的 软 连 接 , 以 确 保 该 单 元 文 件 能 够 被 start 之 类 的 命 令 找 到 。 除 非 使 用 了 --quiet 选 项 , 否 则 此 命 令 还 会 显 示 对 文 件 系 统 所 执 行 的 操 作 (Created symlink ...)。 此 命 令 是 维 护 .{wants,requires}/ 目 录 与 单 元 别 名 的 首 选 方 法 。 注 意 , 此 命 令 仅 会 按 照 单 元 文 件 中 "[Install]" 小 节 预 设 的 名 称 创 建 软 链 接 。 另 一 方 面 , 系 统 管 理 员 亦 可 手 动 创 建 所 需 的 软 链 接 , 特 别 是 在 需 要 创 建 不 同 于 默 认 软 链 接 名 称 的 时 候 。 不 过 需 要 注 意 的 是 , 系 统 管 理 员 必 须 在 创 建 完 软 连 接 之 后 手 动 执 行 daemon-reload 命 令 , 以 确 保 所 做 的 变 更 立 即 生 效 。 不 要 将 此 命 令 与 start 命 令 混 淆 , 它 们 是 相 互 独 立 的 命 令 : 可 以 启 动 一 个 尚 未 启 用 的 单 元 , 也 可 以 启 用 一 个 尚 未 启 动 的 单 元 。 enable 命 令 只 是 设 置 了 单 元 的 启 动 钩 子 (通 过 创 建 软 链 接 ), 例 如 在 系 统 启 动 时 或 者 某 个 硬 件 插 入 时 , 自 动 启 动 某 个 单 元 。 而 start 命 令 则 是 具 体 执 行 单 元 的 启 动 操 作 , 例 如 对 于 服 务 单 元 来 说 就 是 启 动 守 护 进 程 , 而 对 于 套 接 字 单 元 来 说 则 是 绑 定 套 接 字 , 等 等 。 若 与 --user 选 项 连 用 , 则 表 示 变 更 仅 作 用 于 用 户 实 例 , 否 则 默 认 作 用 于 系 统 实 例 (相 当 于 使 用 --system 选 项 )。 若 与 --runtime 选 项 连 用 , 则 表 示 仅 作 临 时 性 变 更 (重 启 后 所 有 变 更 都 将 丢 失 ), 否 则 默 认 为 永 久 性 变 更 。 若 与 --global 选 项 连 用 , 则 表 示 变 更 作 用 于 所 有 用 户 (在 全 局 用 户 单 元 目 录 上 操 作 ), 否 则 默 认 仅 作 用 于 当 前 用 户 (在 私 有 用 户 单 元 目 录 上 操 作 )。 注 意 , 当 与 --runtime 选 项 连 用 时 , systemd 守 护 进 程 不 会 重 新 加 载 自 身 的 配 置 。 不 可 将 此 命 令 应 用 于 已 被 mask 命 令 屏 蔽 的 单 元 , 否 则 将 会 导 致 错 误 。

disable NAME... 停 用 指 定 的 单 元 或 单 元 实 例 (多 数 时 候 相 当 于 撤 销 这 些 单 元 的 "开 机 时 自 动 启 动 "以 及 "插 入 某 个 硬 件 时 自 动 启 动 ")。 这 将 会 从 单 元 目 录 中 删 除 所 有 指 向 单 元 自 身 及 所 有 支 持 单 元 的 软 链 接 。 这 相 当 于 撤 销 enablelink 命 令 所 做 的 操 作 。 注 意 , 此 命 令 会 删 除 所 有 指 向 单 元 自 身 及 所 有 支 持 单 元 的 软 链 接 , 包 括 手 动 创 建 的 软 连 接 以 及 通 过 enablelink 命 令 创 建 的 软 连 接 。 注 意 , 虽 然 disableenable 是 一 对 相 反 的 命 令 , 但 是 它 们 的 效 果 并 不 一 定 总 是 完 全 对 称 的 。 因 为 disable 删 除 的 软 连 接 数 量 有 可 能 比 上 一 次 enable 命 令 创 建 的 软 连 接 数 量 更 多 。 此 命 令 的 参 数 仅 能 接 受 单 元 的 名 字 , 而 不 能 接 受 单 元 文 件 的 路 径 。 除 了 停 用 参 数 中 明 确 指 定 的 单 元 之 外 , 那 些 在 被 停 用 单 元 "[Install]" 小 节 的 Also= 选 项 中 列 出 的 所 有 单 元 , 也 同 样 会 被 停 用 。 也 就 是 说 , 这 个 停 用 动 作 是 沿 着 Also= 选 项 不 断 传 递 的 。 删 除 完 软 连 接 之 后 , systemd 将 会 自 动 重 新 加 载 自 身 的 配 置 (相 当 于 执 行 daemon-reload 命 令 ), 以 确 保 所 做 的 变 更 立 即 生 效 。 注 意 , 除 非 同 时 使 用 了 --now 选 项 (相 当 于 同 时 执 行 stop 命 令 ), 否 则 停 用 一 个 单 元 并 不 会 导 致 该 单 元 被 停 止 。 除 非 使 用 了 --quiet 选 项 , 否 则 此 命 令 还 会 显 示 对 文 件 系 统 所 执 行 的 操 作 (Removed symlink ...)。 有 关 --system, --user, --runtime, --global 选 项 的 影 响 , 参 见 上 面 对 enable 命 令 的 解 释 。

reenable NAME... 重 新 启 用 指 定 的 单 元 或 单 元 实 例 。 这 相 当 于 先 使 用 disable 命 令 之 后 再 使 用 enable 命 令 。 通 常 用 于 按 照 单 元 文 件 中 "[Install]" 小 节 的 指 示 重 置 软 链 接 名 称 。 此 命 令 的 参 数 仅 能 接 受 单 元 的 名 字 , 而 不 能 接 受 单 元 文 件 的 路 径 。

preset NAME... 按 照 预 设 文 件 (*.preset)的 指 示 , 重 置 指 定 单 元 的 启 用 (enable)/停 用 (disable)状 态 。 其 效 果 等 价 于 按 照 预 设 规 则 , 对 列 出 的 单 元 依 次 使 用 disableenable 命 令 。 可 以 使 用 --preset-mode= 选 项 控 制 如 何 参 照 预 设 文 件 : 既 启 用 又 停 用 、 仅 启 用 、 仅 停 用 如 果 指 定 单 元 的 "[Install]" 小 节 不 包 含 必 要 的 启 用 信 息 , 那 么 此 命 令 将 会 悄 无 声 息 的 忽 略 该 单 元 。 有 关 预 设 文 件 的 更 多 说 明 , 详 见 systemd.preset(5) 手 册 与 Preset [1] 文 档 。

preset-all 按 照 预 设 文 件 (*.preset)的 指 示 , 重 置 全 部 单 元 的 启 用 (enable)/停 用 (disable)状 态 (参 见 上 文 )。 可 以 使 用 --preset-mode= 选 项 控 制 如 何 参 照 预 设 文 件 : 既 启 用 又 停 用 、 仅 启 用 、 仅 停 用

is-enabled NAME... 检 查 是 否 有 至 少 一 个 指 定 的 单 元 或 单 元 实 例 已 经 被 启 用 。 如 果 有 , 那 么 返 回 "0", 否 则 返 回 非 零 。 除 非 使 用 了 --quiet 选 项 , 否 则 此 命 令 还 会 显 示 指 定 的 单 元 或 单 元 实 例 的 当 前 启 用 状 态 :

Table 1. is-enabled 命 令 的 输 出

mask NAME... 屏 蔽 指 定 的 单 元 或 单 元 实 例 。 也 就 是 在 单 元 目 录 中 创 建 指 向 /dev/null 的 同 名 符 号 连 接 , 从 而 在 根 本 上 确 保 无 法 启 动 这 些 单 元 。 这 比 disable 命 令 更 彻 底 , 可 以 通 杀 一 切 启 动 方 法 (包 括 手 动 启 动 ), 所 以 应 该 谨 慎 使 用 该 命 令 。 若 与 --runtime 选 项 连 用 , 则 表 示 仅 作 临 时 性 屏 蔽 (重 启 后 屏 蔽 将 失 效 ), 否 则 默 认 为 永 久 性 屏 蔽 。 除 非 使 用 了 --now 选 项 (相 当 于 同 时 执 行 stop 命 令 ), 否 则 仅 屏 蔽 一 个 单 元 并 不 会 导 致 该 单 元 被 停 止 。 此 命 令 的 参 数 仅 能 接 受 单 元 的 名 字 , 而 不 能 接 受 单 元 文 件 的 路 径 。

unmask NAME... 解 除 对 指 定 单 元 或 单 元 实 例 的 屏 蔽 , 这 是 mask 命 令 的 反 动 作 。 也 就 是 在 单 元 目 录 中 删 除 指 向 /dev/null 的 同 名 符 号 连 接 。 此 命 令 的 参 数 仅 能 接 受 单 元 的 名 字 , 而 不 能 接 受 单 元 文 件 的 路 径 。

link PATH... 将 不 在 标 准 单 元 目 录 中 的 单 元 文 件 (通 过 软 链 接 )连 接 到 标 准 单 元 目 录 中 去 。 PATH 参 数 必 须 是 单 元 文 件 的 绝 对 路 径 。 该 命 令 的 结 果 可 以 通 过 disable 命 令 撤 消 。 通 过 该 命 令 , 可 以 让 一 个 不 在 标 准 单 元 目 录 中 的 单 元 文 件 , 也 可 以 像 位 于 标 准 单 元 目 录 中 的 常 规 单 元 文 件 一 样 , 被 start, stop ... 等 各 种 命 令 操 作 。

revert NAME... 将 指 定 的 单 元 恢 复 成 初 始 版 本 。 这 将 会 删 除 对 指 定 单 元 的 所 有 修 改 。 例 如 , 对 于 "foo.service" 单 元 来 说 , 将 会 删 除 所 有 foo.service.d/ 目 录 。 如 果 指 定 的 单 元 在 /usr/lib/ 目 录 中 还 存 在 单 元 文 件 的 初 始 版 本 , 那 么 还 会 进 一 步 删 除 /etc/ 与 /run/ 目 录 中 所 有 用 来 覆 盖 初 始 单 元 文 件 的 软 连 接 与 自 定 义 单 元 文 件 。 如 果 指 定 的 单 元 已 经 被 屏 蔽 , 那 么 将 会 被 解 除 屏 蔽 。 从 效 果 上 看 , 该 命 令 相 当 于 撤 销 edit, set-property, mask 命 令 所 做 的 操 作 , 并 且 将 指 定 单 元 的 配 置 恢 复 成 软 件 包 提 供 的 初 始 值 。

add-wants TARGET NAME..., add-requires TARGET NAME... 将 指 定 的 单 元 或 单 元 实 例 (NAME) 作 为 "Wants=" 或 "Requires=" 依 赖 , 添 加 到 TARGET 单 元 中 。 关 于 --system, --user, --runtime, --global 选 项 的 影 响 , 参 见 前 文 对 enable 命 令 的 解 释 。

edit NAME... 调 用 文 本 编 辑 器 (参 见 下 面 的 "环 境 变 量 "小 节 )修 改 指 定 的 单 元 或 单 元 实 例 。 若 使 用 了 --full 选 项 , 则 表 示 使 用 新 编 辑 的 单 元 文 件 完 全 取 代 原 始 单 元 文 件 , 否 则 默 认 将 新 编 辑 的 单 元 配 置 片 段 (位 于 .d/ 目 录 )附 加 到 原 始 单 元 文 件 的 末 尾 。 如 果 使 用 了 --force 选 项 , 并 且 某 些 指 定 的 单 元 文 件 不 存 在 , 那 么 将 会 强 制 打 开 一 个 新 的 空 单 元 文 件 以 供 编 辑 。 注 意 , 在 编 辑 过 程 中 , 编 辑 器 实 际 操 作 的 只 是 临 时 文 件 , 仅 在 编 辑 器 正 常 退 出 时 , 临 时 文 件 的 内 容 才 会 被 实 际 写 入 到 目 标 文 件 中 。 注 意 , 如 果 在 编 辑 器 退 出 时 , 临 时 文 件 的 内 容 为 空 , 则 表 示 取 消 编 辑 动 作 (而 不 是 写 入 一 个 空 文 件 )。 编 辑 动 作 完 成 之 后 , systemd 将 会 自 动 重 新 加 载 自 身 的 配 置 (相 当 于 执 行 daemon-reload 命 令 ), 以 确 保 所 做 的 变 更 立 即 生 效 。 关 于 --system, --user, --runtime, --global 选 项 的 影 响 , 参 见 前 文 对 enable 命 令 的 解 释 。 注 意 : (1)该 命 令 不 可 用 于 编 辑 远 程 主 机 上 的 单 元 文 件 。 (2)禁 止 在 编 辑 /etc 中 的 原 始 单 元 文 件 时 使 用 --runtime 选 项 , 因 为 /etc 中 的 单 元 文 件 优 先 级 高 于 /run 中 的 单 元 文 件 。

get-default 显 示 默 认 的 启 动 目 标 。 这 将 显 示 default.target 软 链 接 所 指 向 的 实 际 单 元 文 件 的 名 称 。

set-default NAME 设 置 默 认 的 启 动 目 标 。 这 会 将 default.target 软 链 接 指 向 NAME 单 元 。 机 器 命 令
list-machines [
PATTERN...] 列 出 主 机 和 所 有 运 行 中 的 本 地 容 器 , 以 及 它 们 的 状 态 。 如 果 给 出 了 模 式 (PATTERN)参 数 , 那 么 仅 显 示 容 器 名 称 与 至 少 一 个 模 式 匹 配 的 本 地 容 器 。 任 务 (job)命 令
list-jobs [
PATTERN...] 列 出 正 在 运 行 中 的 任 务 。 如 果 给 出 了 模 式 (PATTERN)参 数 , 那 么 仅 显 示 单 元 名 称 与 至 少 一 个 模 式 匹 配 的 任 务 。

cancel JOB... 据 给 定 的 任 务 ID撤 消 任 务 。 如 果 没 有 给 出 任 务 ID, 那 么 表 示 撤 消 所 有 尚 未 执 行 的 任 务 。 环 境 变 量 命 令
show-environment
显 示 所 有 systemd 环 境 变 量 及 其 值 。 显 示 格 式 遵 守 shell脚 本 语 法 , 可 以 直 接 用 于 shell脚 本 中 。 这 些 环 境 变 量 会 被 传 递 给 所 有 由 systemd 派 生 的 进 程 。

set-environment VARIABLE=VALUE... 设 置 指 定 的 systemd 环 境 变 量 。

unset-environment VARIABLE... 撤 消 指 定 的 systemd 环 境 变 量 。 如 果 仅 指 定 了 变 量 名 , 那 么 表 示 无 条 件 的 撤 消 该 变 量 (无 论 其 值 是 什 么 )。 如 果 以 VARIABLE=VALUE 格 式 同 时 给 出 了 变 量 值 , 那 么 表 示 仅 当 VARIABLE 的 值 恰 好 等 于 VALUE 时 , 才 撤 消 VARIABLE 变 量 。

import-environment [VARIABLE...] 导 入 指 定 的 客 户 端 环 境 变 量 。 如 果 未 指 定 任 何 参 数 , 则 表 示 导 入 全 部 客 户 端 环 境 变 量 。

systemd 生 命 周 期 命 令
daemon-reload
重 新 加 载 systemd 守 护 进 程 的 配 置 。 具 体 是 指 : 重 新 运 行 所 有 的 生 成 器 (systemd.generator(7)), 重 新 加 载 所 有 单 元 文 件 , 重 建 整 个 依 赖 关 系 树 。 在 重 新 加 载 过 程 中 , 所 有 由 systemd 代 为 监 听 的 用 户 套 接 字 都 始 终 保 持 可 访 问 状 态 。 不 要 将 此 命 令 与 reload 命 令 混 淆 。

daemon-reexec 重 新 执 行 systemd 守 护 进 程 。 具 体 是 指 : 首 先 序 列 化 systemd 状 态 , 接 着 重 新 执 行 systemd 守 护 进 程 并 反 序 列 化 原 有 状 态 。 此 命 令 仅 供 调 试 和 升 级 systemd 使 用 。 有 时 候 也 作 为 daemon-reload 命 令 的 重 量 级 版 本 使 用 。 在 重 新 执 行 过 程 中 , 所 有 由 systemd 代 为 监 听 的 用 户 套 接 字 都 始 终 保 持 可 访 问 状 态 。 系 统 命 令
is-system-running
检 查 当 前 系 统 是 否 处 于 正 常 运 行 状 态 (running), 若 正 常 则 返 回 "0", 否 则 返 回 大 于 零 的 正 整 数 。 所 谓 正 常 运 行 状 态 是 指 : 系 统 完 成 了 全 部 的 启 动 操 作 , 整 个 系 统 已 经 处 于 完 全 可 用 的 状 态 , 特 别 是 没 有 处 于 启 动 /关 闭 /维 护 状 态 , 并 且 没 有 任 何 单 元 处 于 失 败 (failed)状 态 。 除 非 使 用 了 --quiet 选 项 , 否 则 此 命 令 还 会 在 标 准 输 出 上 显 示 系 统 的 当 前 状 态 , 如 下 表 所 示 :

Table 2. is-system-running 命 令 的 输 出

default 进 入 默 认 模 式 。 差 不 多 相 当 于 执 行 isolate default.target 命 令 。

rescue 进 入 救 援 模 式 。 差 不 多 相 当 于 执 行 isolate rescue.target 命 令 。 但 同 时 会 向 所 有 用 户 显 示 一 条 警 告 信 息 。

emergency 进 入 紧 急 维 修 模 式 。 差 不 多 相 当 于 执 行 isolate emergency.target 命 令 。 但 同 时 会 向 所 有 用 户 显 示 一 条 警 告 信 息 。

halt 关 闭 系 统 , 但 不 切 断 电 源 。 差 不 多 相 当 于 执 行 start halt.target --job-mode=replace-irreversibly 命 令 。 但 同 时 会 向 所 有 用 户 显 示 一 条 警 告 信 息 。 若 仅 使 用 一 次 --force 选 项 , 则 跳 过 单 元 的 正 常 停 止 步 骤 而 直 接 杀 死 所 有 进 程 , 强 制 卸 载 所 有 文 件 系 统 (或 以 只 读 模 式 重 新 挂 载 ), 并 立 即 关 闭 系 统 。 若 使 用 了 两 次 --force 选 项 , 则 跳 过 杀 死 进 程 和 卸 载 文 件 系 统 的 步 骤 , 并 立 即 关 闭 系 统 , 这 会 导 致 数 据 丢 失 、 文 件 系 统 不 一 致 等 不 良 后 果 。 注 意 , 如 果 连 续 两 次 使 用 --force 选 项 , 那 么 所 有 操 作 都 将 由 systemctl 自 己 直 接 执 行 , 而 不 会 与 systemd 进 程 通 信 。 这 意 味 着 , 即 使 systemd 进 程 已 经 僵 死 或 者 崩 溃 , 连 续 两 次 使 用 --force 选 项 所 指 定 的 操 作 依 然 能 够 执 行 成 功 。

poweroff 关 闭 系 统 , 同 时 切 断 电 源 。 差 不 多 相 当 于 执 行 start poweroff.target --job-mode=replace-irreversibly 命 令 。 但 同 时 会 向 所 有 用 户 显 示 一 条 警 告 信 息 。 若 仅 使 用 一 次 --force 选 项 , 则 跳 过 单 元 的 正 常 停 止 步 骤 而 直 接 杀 死 所 有 进 程 , 强 制 卸 载 所 有 文 件 系 统 (或 以 只 读 模 式 重 新 挂 载 ), 并 立 即 关 闭 系 统 。 若 使 用 了 两 次 --force 选 项 , 则 跳 过 杀 死 进 程 和 卸 载 文 件 系 统 的 步 骤 , 并 立 即 关 闭 系 统 , 这 会 导 致 数 据 丢 失 、 文 件 系 统 不 一 致 等 不 良 后 果 。 注 意 , 如 果 连 续 两 次 使 用 --force 选 项 , 那 么 所 有 操 作 都 将 由 systemctl 自 己 直 接 执 行 , 而 不 会 与 systemd 进 程 通 信 。 这 意 味 着 , 即 使 systemd 进 程 已 经 僵 死 或 者 崩 溃 , 连 续 两 次 使 用 --force 选 项 所 指 定 的 操 作 依 然 能 够 执 行 成 功 。

reboot [arg] 关 闭 系 统 , 然 后 重 新 启 动 。 差 不 多 相 当 于 执 行 start reboot.target --job-mode=replace-irreversibly 命 令 。 但 同 时 会 向 所 有 用 户 显 示 一 条 警 告 信 息 。 若 仅 使 用 一 次 --force 选 项 , 则 跳 过 单 元 的 正 常 停 止 步 骤 而 直 接 杀 死 所 有 进 程 , 强 制 卸 载 所 有 文 件 系 统 (或 以 只 读 模 式 重 新 挂 载 ), 并 立 即 关 闭 系 统 。 若 使 用 了 两 次 --force 选 项 , 则 跳 过 杀 死 进 程 和 卸 载 文 件 系 统 的 步 骤 , 并 立 即 关 闭 系 统 , 这 会 导 致 数 据 丢 失 、 文 件 系 统 不 一 致 等 不 良 后 果 。 注 意 , 如 果 连 续 两 次 使 用 --force 选 项 , 那 么 所 有 操 作 都 将 由 systemctl 自 己 直 接 执 行 , 而 不 会 与 systemd 进 程 通 信 。 这 意 味 着 , 即 使 systemd 进 程 已 经 僵 死 或 者 崩 溃 , 连 续 两 次 使 用 --force 选 项 所 指 定 的 操 作 依 然 能 够 执 行 成 功 。 若 给 出 了 可 选 的 arg 参 数 , 那 么 将 会 被 作 为 可 选 参 数 传 递 给 reboot(2) 系 统 调 用 。 其 取 值 范 围 依 赖 于 特 定 的 硬 件 平 台 。 例 如 "recovery" 有 可 能 表 示 触 发 系 统 恢 复 动 作 , 而 "fota" 有 可 能 表 示 “firmware over the air” 固 件 更 新 。

kexec 关 闭 系 统 , 并 通 过 内 核 的 kexec 接 口 重 新 启 动 。 差 不 多 相 当 于 执 行 start kexec.target --job-mode=replace-irreversibly 命 令 。 但 同 时 会 向 所 有 用 户 显 示 一 条 警 告 信 息 。 若 使 用 了 --force 选 项 , 则 跳 过 服 务 的 正 常 关 闭 步 骤 而 直 接 杀 死 所 有 进 程 , 强 制 卸 载 所 有 文 件 系 统 (或 只 读 挂 载 ), 并 立 即 关 闭 系 统 。

exit [EXIT_CODE] 让 systemd 按 照 指 定 的 EXIT_CODE 退 出 码 (必 须 是 整 数 )退 出 。 若 未 指 定 EXIT_CODE 则 退 出 码 为 零 。 此 命 令 相 当 于 poweroff 命 令 , 但 仅 可 用 于 用 户 实 例 (也 就 是 以 --user 选 项 启 动 的 实 例 )或 容 器 , 否 则 会 执 行 失 败 。

switch-root ROOT [INIT] 将 系 统 的 根 目 录 切 换 到 ROOT 并 执 行 新 的 INIT 程 序 (PID=1)。 此 命 令 仅 应 该 在 初 始 内 存 盘 ("initrd")中 使 用 。 如 果 未 指 定 INIT 参 数 , 那 么 表 示 自 动 在 ROOT 目 录 下 搜 索 systemd 二 进 制 程 序 , 并 用 作 INIT 程 序 , 同 时 "initrd"中 systemd 的 状 态 将 会 传 递 给 新 的 systemd 进 程 , 从 而 允 许 在 新 系 统 中 对 原 "initrd"中 的 各 种 服 务 状 态 进 行 内 省 。

suspend 休 眠 到 内 存 。 相 当 于 启 动 suspend.target 目 标 。

hibernate 休 眠 到 硬 盘 。 相 当 于 启 动 hibernate.target 目 标 。

hybrid-sleep 进 入 混 合 休 眠 模 式 。 也 就 是 同 时 休 眠 到 内 存 和 硬 盘 。 相 当 于 启 动 hybrid-sleep.target 目 标 。 参 数 语 法 单 元 命 令 的 参 数 可 能 是 一 个 单 独 的 单 元 名 称 (NAME), 也 可 能 是 多 个 匹 配 模 式 (PATTERN...)。 对 于 第 一 种 情 况 , 如 果 省 略 单 元 名 称 的 后 缀 , 那 么 默 认 以 ".service" 为 后 缀 , 除 非 那 个 命 令 只 能 用 于 某 种 特 定 类 型 的 单 元 。 例 如

# systemctl start sshd 等 价 于

# systemctl start sshd.service , 而

# systemctl isolate default 等 价 于

# systemctl isolate default.target , 因 为 isolate 命 令 只 能 用 于 .target 单 元 。 注 意 , 设 备 文 件 路 径 (绝 对 路 径 )会 自 动 转 化 为 device 单 元 名 称 , 其 他 路 径 (绝 对 路 径 )会 自 动 转 化 为 mount 单 元 名 称 。 例 如 , 如 下 命 令

# systemctl status /dev/sda
# systemctl status /home 分 别 等 价 于

# systemctl status dev-sda.device
# systemctl status home.mount 对 于 第 二 种 情 况 , 可 以 在 模 式 中 使 用 shell风 格 的 匹 配 符 , 对 所 有 已 加 载 单 元 的 主 名 称 (primary name)进 行 匹 配 。 如 果 没 有 使 用 匹 配 符 并 且 省 略 了 单 元 后 缀 , 那 么 处 理 方 式 与 第 一 种 情 况 完 全 相 同 。 这 就 意 味 着 : 如 果 没 有 使 用 匹 配 符 , 那 么 该 模 式 就 等 价 于 一 个 单 独 的 单 元 名 称 (NAME), 只 表 示 一 个 明 确 的 单 元 。 如 果 使 用 了 匹 配 符 , 那 么 该 模 式 就 可 以 匹 配 任 意 数 量 的 单 元 (包 括 零 个 )。 模 式 使 用 fnmatch(3) 语 法 , 也 就 是 可 以 使 用 shell风 格 的 "*", "?", "[]" 匹 配 符 (详 见 glob(7))。 模 式 将 基 于 所 有 已 加 载 单 元 的 主 名 称 (primary name)进 行 匹 配 , 如 果 某 个 模 式 未 能 匹 配 到 任 何 单 元 , 那 么 将 会 被 悄 无 声 息 的 忽 略 掉 。 例 如

# systemctl stop sshd@*.service 命 令 将 会 停 止 所 有 sshd@.service 的 实 例 单 元 。 注 意 , 单 元 的 别 名 (软 连 接 )以 及 未 被 加 载 的 单 元 , 不 在 匹 配 范 围 内 (也 就 是 不 作 为 匹 配 目 标 )。 对 于 单 元 文 件 命 令 , NAME 参 数 必 须 是 单 元 名 称 (完 整 的 全 称 或 省 略 了 后 缀 的 简 称 )或 单 元 文 件 的 绝 对 路 径 。 例 如 :

# systemctl enable foo.service 或

# systemctl link /path/to/foo.service

退 出 状 态

返 回 值 为 0 表 示 成 功 , 非 零 返 回 值 表 示 失 败 代 码 。

环 境 变 量

$SYSTEMD_EDITOR 编 辑 单 元 文 件 时 所 使 用 的 编 辑 器 , 会 覆 盖 $EDITOR$VISUAL 的 值 。 如 果 $SYSTEMD_EDITOR, $EDITOR, $VISUAL 都 不 存 在 或 无 法 使 用 , 那 么 将 会 依 次 尝 试 使 用 editor(1), nano(1), vim(1), vi(1) 编 辑 器 。

$SYSTEMD_PAGER 指 定 分 页 程 序 。 仅 在 未 指 定 --no-pager 选 项 时 有 意 义 。 此 变 量 会 覆 盖 $PAGER 的 值 。 将 此 变 量 设 为 空 字 符 串 或 "cat" 等 价 于 使 用 --no-pager 选 项 。

$SYSTEMD_LESS 用 于 覆 盖 默 认 传 递 给 less 程 序 的 命 令 行 选 项 ("FRSXMK")。

参 见

systemd(1), journalctl(1), loginctl(1), machinectl(1), systemd.unit(5), systemd.resource-control(5), systemd.special(7), wall(1), systemd.preset(5), systemd.generator(7), glob(7)

NOTES

1.

Preset

http://freedesktop.org/wiki/Software/systemd/Preset

本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 翻 译 人 员 : 金 步 国 金 步 国 作 品 集 : http://www.jinbuguo.com 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh