Manpages

NAME

systemd, init - systemd 系 統 與 服 務 管 理 器

SYNOPSIS

systemd [OPTIONS...]

init [OPTIONS...] {COMMAND}

描 述

systemd 是 一 個 專 用 於 Linux 操 作 系 統 的 系 統 與 服 務 管 理 器 。 當 作 爲 啓 動 進 程 (PID=1)運 行 時 , 它 將 作 爲 初 始 化 系 統 運 行 , 也 就 是 啓 動 並 維 護 各 種 用 戶 空 間 的 服 務 。 爲 了 與 傳 統 的 SysV 兼 容 , 如 果 將 systemd 以 init 名 稱 啓 動 , 並 且 "PID≠1", 那 麼 它 將 執 行 telinit 命 令 並 將 所 有 命 令 行 參 數 原 封 不 動 的 傳 遞 過 去 。 這 樣 對 於 普 通 的 登 陸 會 話 來 說 , 無 論 是 調 用 init 還 是 調 用 telinit 都 是 等 價 的 。 詳 見 telinit(8) 手 冊 。 當 作 爲 系 統 實 例 運 行 時 , systemd 將 會 按 照 system.conf 配 置 文 件 以 及 system.conf.d 配 置 目 錄 中 的 指 令 工 作 ; 當 作 爲 用 戶 實 例 運 行 時 , systemd 將 會 按 照 user.conf 配 置 文 件 以 及 user.conf.d 配 置 目 錄 中 的 指 令 工 作 。 詳 見 systemd-system.conf(5) 手 冊 。

選 項

能 夠 識 別 的 命 令 行 選 項 如 下 :

--test 檢 測 並 輸 出 啓 動 序 列 , 然 後 退 出 。 僅 用 於 調 試 目 的 。

--dump-configuration-items 輸 出 一 個 單 元 (unit)列 表 。 此 列 表 簡 明 且 完 整 的 列 出 了 所 有 單 元 文 件 中 定 義 的 "unit"。

--unit= 設 置 啓 動 時 默 認 啓 動 的 單 元 (unit)。 默 認 值 是 default.target

--system, --user

--system 表 示 強 制 作 爲 系 統 實 例 運 行 (即 使 "PID≠1"), --user 表 示 強 制 作 爲 用 戶 實 例 運 行 (即 使 "PID=1")。 通 常 不 應 該 使 用 此 選 項 。 此 選 項 僅 用 於 調 試 目 的 , 而 且 --system 僅 在 與 --test 一 起 使 用 時 纔 有 實 際 意 義 。

--dump-core 在 崩 潰 時 進 行 內 核 轉 儲 。 當 作 爲 用 戶 實 例 運 行 時 , 此 選 項 沒 有 實 際 意 義 。 此 選 項 還 可 以 通 過 內 核 引 導 選 項 systemd.dump_core= 開 啓 (參 見 "內 核 引 導 選 項 "小 節 )。

--crash-vt=VT 在 崩 潰 時 切 換 到 指 定 的 虛 擬 控 制 檯 (VT)。 當 作 爲 用 戶 實 例 運 行 時 , 此 選 項 沒 有 實 際 意 義 。 可 以 設 爲 一 個 1–63 之 間 的 整 數 或 布 爾 值 。 若 設 爲 整 數 則 切 換 到 指 定 編 號 的 虛 擬 控 制 檯 ; 若 設 爲 yes 則 表 示 使 用 內 核 消 息 所 使 用 的 虛 擬 控 制 檯 ; 若 設 爲 no 則 表 示 不 切 換 到 任 何 虛 擬 控 制 檯 。 此 選 項 還 可 以 通 過 內 核 引 導 選 項 systemd.crash_vt= 設 置 (參 見 "內 核 引 導 選 項 "小 節 )。

--crash-shell 在 崩 潰 時 啓 動 一 個 shell 。 當 作 爲 用 戶 實 例 運 行 時 , 此 選 項 沒 有 實 際 意 義 。 此 選 項 還 可 以 通 過 內 核 引 導 選 項 systemd.crash_shell= 開 啓 (參 見 "內 核 引 導 選 項 "小 節 )。

--crash-reboot 在 崩 潰 時 自 動 重 啓 系 統 。 當 作 爲 用 戶 實 例 運 行 時 , 此 選 項 沒 有 實 際 意 義 。 此 選 項 還 可 以 通 過 內 核 引 導 選 項 systemd.crash_reboot= 開 啓 (參 見 "內 核 引 導 選 項 "小 節 )。

--confirm-spawn 在 派 生 新 進 程 時 進 行 確 認 提 示 。 當 作 爲 用 戶 實 例 運 行 時 , 此 選 項 沒 有 實 際 意 義 。

--show-status= 在 系 統 啓 動 過 程 中 顯 示 簡 明 的 服 務 狀 態 信 息 。 當 作 爲 用 戶 實 例 運 行 時 , 此 選 項 沒 有 實 際 意 義 。 其 參 數 必 須 是 一 個 表 示 真 假 的 布 爾 值 , 如 果 未 指 定 則 相 當 於 設 爲 yes

--log-target= 設 置 日 誌 的 目 標 , 其 參 數 必 須 是 console, journal, kmsg, journal-or-kmsg, null 之 一 (小 寫 )。

--log-level= 設 置 日 誌 的 等 級 , 其 參 數 必 須 是 一 個 數 字 或 者 符 合 syslog(3) 習 慣 的 emerg, alert, crit, err, warning, notice, info, debug 之 一 (小 寫 )。

--log-color= 高 亮 重 要 的 日 誌 信 息 , 其 參 數 必 須 是 一 個 表 示 真 假 的 布 爾 值 , 若 未 指 定 則 相 當 於 設 爲 yes

--log-location= 在 日 誌 中 包 含 代 碼 的 位 置 , 其 參 數 必 須 是 一 個 表 示 真 假 的 布 爾 值 , 若 未 指 定 則 相 當 於 設 爲 yes 。 僅 用 於 調 試 目 的 。

--default-standard-output=, --default-standard-error= 爲 所 有 的 service 與 socket 設 置 默 認 的 標 準 輸 出 與 標 準 錯 誤 , 相 當 於 設 置 StandardOutput=StandardError= 指 令 的 值 (參 見 systemd.exec(5) 手 冊 )。 其 參 數 必 須 是 inherit, null, tty, journal, journal+console, syslog, syslog+console, kmsg, kmsg+console 之 一 (小 寫 )。 --default-standard-output= 的 默 認 值 是 journal ; 而 --default-standard-error= 的 默 認 值 是 inherit

--machine-id= 覆 蓋 文 件 系 統 上 的 machine-id 設 置 , 常 用 於 網 絡 啓 動 或 容 器 。 禁 止 設 爲 全 零 的 值 。

-h, --help 顯 示 簡 短 的 幫 助 信 息 並 退 出 。

--version 顯 示 簡 短 的 版 本 信 息 並 退 出 。

概 念

systemd 將 各 種 系 統 啓 動 和 運 行 相 關 的 對 象 , 表 示 爲 各 種 不 同 類 型 的 單 元 (unit), 並 提 供 了 處 理 不 同 單 元 之 間 依 賴 關 係 的 能 力 。 大 部 分 單 元 都 靜 態 的 定 義 在 單 元 文 件 中 (參 見 systemd.unit(5) 手 冊 ), 但 是 有 少 部 分 單 元 則 是 動 態 自 動 生 成 的 : 其 中 一 部 分 來 自 於 其 他 傳 統 的 配 置 文 件 (爲 了 兼 容 性 ), 而 另 一 部 分 則 動 態 的 來 自 於 系 統 狀 態 或 可 編 程 的 運 行 時 狀 態 。 單 元 既 可 以 處 於 活 動 (active)狀 態 也 可 以 處 於 停 止 (inactive)狀 態 , 當 然 也 可 以 處 於 啓 動 中 (activating)或 停 止 中 (deactivating)的 狀 態 。 還 有 一 個 特 殊 的 失 敗 (failed)狀 態 , 意 思 是 單 元 以 某 種 方 式 失 敗 了 (進 程 崩 潰 了 、 或 者 觸 碰 啓 動 頻 率 限 制 、 或 者 退 出 時 返 回 了 錯 誤 代 碼 、 或 者 遇 到 了 操 作 超 時 之 類 的 故 障 )。 當 進 入 失 敗 (failed)狀 態 時 , 導 致 故 障 的 原 因 將 被 記 錄 到 日 誌 中 以 方 便 日 後 排 查 。 需 要 注 意 的 是 , 不 同 的 單 元 可 能 還 會 有 各 自 不 同 的 "子 狀 態 ", 但 它 們 都 被 映 射 到 上 述 五 種 狀 態 之 一 。 各 種 不 同 的 單 元 類 型 如 下 :

1. service 單 元 。 用 於 封 裝 一 個 後 臺 服 務 進 程 。 參 見 systemd.service(5) 手 冊 。

2. socket 單 元 。 用 於 封 裝 一 個 系 統 套 接 字 (UNIX)或 互 聯 網 套 接 字 (INET/INET6)或 FIFO管 道 。 相 應 的 服 務 在 第 一 個 "連 接 "進 入 套 接 字 時 纔 會 被 啓 動 。 有 關 套 接 字 單 元 的 詳 情 , 參 見 systemd.socket(5) 手 冊 ; 有 關 基 於 套 接 字 或 其 他 方 式 的 啓 動 , 參 見 daemon(7) 手 冊 。

3. target 單 元 。 用 於 將 多 個 單 元 在 邏 輯 上 組 合 在 一 起 。 參 見 systemd.target(5) 手 冊 。

4. device 單 元 。 用 於 封 裝 一 個 設 備 文 件 , 可 用 於 基 於 設 備 的 啓 動 。 並 非 每 一 個 設 備 文 件 都 需 要 一 個 device 單 元 , 但 是 每 一 個 被 udev 規 則 標 記 的 設 備 都 必 須 作 爲 一 個 device 單 元 出 現 。 參 見 systemd.device(5) 手 冊 。

5. mount 單 元 。 用 於 封 裝 一 個 文 件 系 統 掛 載 點 (也 向 後 兼 容 傳 統 的 /etc/fstab 文 件 )。 參 見 systemd.mount(5) 手 冊 。

6. automount 單 元 。 用 於 封 裝 一 個 文 件 系 統 自 動 掛 載 點 , 也 就 是 僅 在 掛 載 點 確 實 被 訪 問 的 情 況 下 才 進 行 掛 載 。 它 取 代 了 傳 統 的 autofs 服 務 。 參 見 systemd.automount(5) 手 冊 。

7. timer 單 元 。 用 於 封 裝 一 個 基 於 時 間 觸 發 的 動 作 。 它 取 代 了 傳 統 的 atd, crond 等 任 務 計 劃 服 務 。 參 見 systemd.timer(5) 手 冊 。

8. swap 單 元 。 用 於 封 裝 一 個 交 換 分 區 或 者 交 換 文 件 。 它 與 mount 單 元 非 常 類 似 。 參 見 systemd.swap(5) 手 冊 。

9. path 單 元 。 用 於 根 據 文 件 系 統 上 特 定 對 象 的 變 化 來 啓 動 其 他 服 務 。 參 見 systemd.path(5) 手 冊 。

10. slice 單 元 。 用 於 控 制 特 定 CGroup 內 (例 如 一 組 service 與 scope 單 元 )所 有 進 程 的 總 體 資 源 佔 用 。 參 見 systemd.slice(5) 手 冊 。

11. scope 單 元 。 它 與 service 單 元 類 似 , 但 是 由 systemd 根 據 D-bus 接 口 接 收 到 的 信 息 自 動 創 建 , 可 用 於 管 理 外 部 創 建 的 進 程 。 參 見 systemd.scope(5) 手 冊 。 單 元 的 名 稱 由 單 元 文 件 的 名 稱 決 定 , 某 些 特 定 的 單 元 名 稱 具 有 特 殊 的 含 義 , 詳 情 參 見 systemd.special(7) 手 冊 。

systemd 能 夠 處 理 各 種 類 型 的 依 賴 關 係 , 包 括 依 賴 與 衝 突 (也 就 是 Requires=Conflicts= 指 令 ), 以 及 先 後 順 序 (也 就 是 After=Before= 指 令 )。 注 意 , 上 述 兩 種 類 型 的 依 賴 關 係 (依 賴 與 衝 突 、 先 後 順 序 )之 間 是 相 互 獨 立 的 (無 關 的 )。 舉 例 來 說 , 假 定 foo.service 依 賴 於 (Requires) bar.service 但 並 未 指 定 先 後 順 序 , 那 麼 這 兩 個 服 務 將 被 同 時 並 行 啓 動 。 不 過 在 兩 個 單 元 之 間 既 存 在 依 賴 關 係 也 存 在 先 後 順 序 的 情 形 也 很 常 見 。 另 外 需 要 注 意 的 是 , 大 多 數 依 賴 關 係 都 是 由 systemd 隱 式 創 建 和 維 護 的 , 因 此 沒 有 必 要 額 外 手 動 創 建 它 們 。 應 用 程 序 和 單 元 (透 過 依 賴 關 係 )可 能 會 查 詢 其 他 單 元 的 狀 態 變 化 。 在 systemd 中 , 這 種 查 詢 被 包 裝 爲 "任 務 "(job)並 被 作 爲 "任 務 隊 列 "進 行 管 理 。 任 務 的 執 行 結 果 可 能 成 功 也 可 能 失 敗 , 但 是 任 務 的 執 行 順 序 是 依 照 任 務 所 屬 單 元 之 間 的 先 後 順 序 確 定 的 。 在 系 統 啓 動 時 , systemd 默 認 啓 動 default.target 單 元 , 該 單 元 中 應 該 包 含 所 有 你 想 在 開 機 時 默 認 啓 動 的 單 元 。 但 實 際 上 , 它 通 常 只 是 一 個 指 向 graphical.target (圖 形 界 面 ) 或 multi-user.target (命 令 行 界 面 , 常 用 於 嵌 入 式 或 服 務 器 環 境 , 一 般 是 graphical.target 的 一 個 子 集 )的 符 號 連 接 。 詳 見 systemd.special(7) 手 冊 。

systemd 依 賴 於 內 核 提 供 的 cgroups [1] 特 性 控 制 進 程 的 派 生 , 從 而 確 保 可 以 追 蹤 到 所 有 子 進 程 。 cgroups 信 息 由 內 核 負 責 維 護 , 並 且 可 以 通 過 /sys/fs/cgroup/systemd/ 接 口 進 行 訪 問 。 此 外 , 還 可 以 通 過 systemd-cgls(1)ps(1) 之 類 的 工 具 進 行 查 看 (ps xawf -eo pid,user,cgroup,args)

systemd 幾 乎 完 全 兼 容 傳 統 的 SysV init 系 統 : SysV init 腳 本 可 以 作 爲 另 一 種 配 置 文 件 格 式 被 識 別 ; 提 供 與 SysV 兼 容 的 /dev/initctl 接 口 ; 提 供 各 種 SysV 工 具 的 兼 容 實 現 ; 依 然 兼 容 例 如 /etc/fstab 或 者 utmp 之 類 傳 統 的 Unix 特 性 。

systemd 還 有 一 個 小 型 的 事 務 系 統 : 如 果 要 啓 動 或 關 閉 一 個 單 元 , 那 麼 該 單 元 所 依 賴 的 所 有 其 他 單 元 都 會 被 一 起 加 入 到 同 一 個 臨 時 事 務 中 。 這 樣 , 就 可 以 校 驗 整 個 事 務 的 一 致 性 , 也 就 是 檢 查 是 否 存 在 循 環 依 賴 。 如 果 存 在 循 環 依 賴 , 那 麼 systemd 將 會 嘗 試 通 過 去 掉 弱 依 賴 (want)來 解 決 這 個 問 題 , 如 果 最 終 實 在 無 法 解 決 循 環 依 賴 的 問 題 , 那 麼 systemd 將 會 報 錯 。

systemd 內 置 了 許 多 系 統 啓 動 過 程 中 必 需 的 操 作 , 例 如 , 設 置 hostname 以 及 配 置 loopback 網 絡 設 備 , 以 及 掛 載 /sys 和 /proc 文 件 系 統 。 在 系 統 啓 動 或 者 執 行 systemctl reload ... 時 , systemd 可 以 根 據 其 他 配 置 文 件 或 者 內 核 引 導 選 項 動 態 生 成 單 元 , 參 見 systemd.generator(7) 手 冊 。 如 果 要 從 容 器 中 調 用 systemd 那 麼 必 須 遵 守 Container Interface [2] 規 範 。 如 果 要 從 initrd 中 調 用 systemd 那 麼 必 須 遵 守 initrd Interface [3] 規 範 。

目 錄

系 統 單 元 目 錄

systemd 會 從 多 個 優 先 級 不 同 的 系 統 單 元 目 錄 中 讀 取 系 統 單 元 , 軟 件 包 應 該 將 系 統 單 元 文 件 安 裝 在 pkg-config systemd --variable=systemdsystemunitdir 命 令 所 返 回 的 系 統 單 元 目 錄 中 (通 常 是 /usr/lib/systemd/system)。 此 外 , systemd 還 會 讀 取 優 先 級 較 高 的 /usr/local/lib/systemd/system 目 錄 以 及 優 先 級 較 低 的 /usr/lib/systemd/system 目 錄 中 的 系 統 單 元 文 件 。 優 先 級 最 高 的 系 統 單 元 目 錄 是 pkg-config systemd --variable=systemdsystemconfdir 命 令 所 返 回 的 目 錄 (通 常 是 /etc/systemd/system)。 注 意 , 軟 件 包 應 該 僅 使 用 systemctl(1)enabledisable 命 令 修 改 上 述 目 錄 中 的 內 容 。 完 整 的 目 錄 列 表 參 見 systemd.unit(5) 手 冊 。 用 戶 單 元 目 錄 用 戶 單 元 目 錄 所 遵 守 的 規 則 與 系 統 單 元 目 錄 類 似 , 軟 件 包 應 該 將 用 戶 單 元 文 件 安 裝 在 pkg-config systemd --variable=systemduserunitdir 命 令 所 返 回 的 用 戶 單 元 目 錄 中 (通 常 是 /usr/lib/systemd/user)。 此 外 , 因 爲 用 戶 單 元 目 錄 還 遵 守 XDG Base Directory specification [4] 規 範 , 所 以 systemd 還 會 讀 取 $XDG_DATA_HOME/systemd/user(僅 在 已 設 置 $XDG_DATA_HOME 的 情 況 下 ) 或 ~/.local/share/systemd/user(僅 在 未 設 置 $XDG_DATA_HOME 的 情 況 下 ) 目 錄 中 的 用 戶 單 元 。 全 局 用 戶 單 元 目 錄 (針 對 所 有 用 戶 )是 pkg-config systemd --variable=systemduserconfdir 命 令 所 返 回 的 目 錄 (通 常 是 /etc/systemd/user)。 注 意 , 軟 件 包 應 該 僅 使 用 systemctl(1)enabledisable 命 令 修 改 上 述 目 錄 中 的 內 容 。 無 論 這 種 修 改 是 全 局 的 (針 對 所 有 用 戶 )、 還 是 私 有 的 (針 對 單 個 用 戶 )。 完 整 的 目 錄 列 表 參 見 systemd.unit(5) 手 冊 。

SysV啓 動 腳 本 目 錄 (不 同 發 行 版 之 間 差 別 可 能 很 大 ) 如 果 systemd 找 不 到 指 定 服 務 所 對 應 的 單 元 文 件 , 那 麼 就 會 到 SysV啓 動 腳 本 目 錄 中 去 尋 找 同 名 腳 本 (去 掉 .service 後 綴 )。

SysV運 行 級 目 錄 (不 同 發 行 版 之 間 差 別 可 能 很 大 )

systemd 在 決 定 是 否 啓 用 一 個 服 務 的 時 候 , 會 參 照 SysV運 行 級 目 錄 對 該 服 務 的 設 置 。 注 意 , 這 個 規 則 不 適 用 於 那 些 已 經 擁 有 原 生 單 元 文 件 的 服 務 。

信 號

SIGTERM

systemd 系 統 實 例 將 會 保 存 其 當 前 狀 態 , 然 後 重 新 執 行 它 自 身 , 再 恢 復 到 先 前 保 存 的 狀 態 。 基 本 上 相 當 於 執 行 systemctl daemon-reexec 命 令 。

systemd 用 戶 實 例 將 會 啓 動 exit.target 單 元 。 基 本 上 相 當 於 執 行 systemctl --user start exit.target 命 令 。

SIGINT

systemd 系 統 實 例 將 會 啓 動 ctrl-alt-del.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start ctl-alt-del.target 命 令 。 在 控 制 檯 上 按 Ctrl-Alt-Del 組 合 鍵 即 可 觸 發 這 個 信 號 。 但 是 , 如 果 在 2秒 內 連 續 收 到 超 過 7次 這 個 信 號 , 那 麼 將 會 不 顧 一 切 的 立 即 強 制 重 啓 。 因 此 , 如 果 系 統 在 重 啓 過 程 中 僵 死 , 那 麼 可 以 通 過 快 速 連 按 7次 Ctrl-Alt-Del 組 合 鍵 來 強 制 立 即 重 啓 。

systemd 用 戶 實 例 處 理 此 信 號 的 方 式 與 SIGTERM 相 同 。

SIGWINCH

systemd 系 統 實 例 將 會 啓 動 kbrequest.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start kbrequest.target 命 令 。

systemd 用 戶 實 例 將 會 完 全 忽 略 此 信 號 。

SIGPWR

systemd 將 會 啓 動 sigpwr.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start sigpwr.target 命 令 。

SIGUSR1

systemd 將 會 嘗 試 重 新 連 接 到 D-Bus 總 線 。

SIGUSR2

systemd 將 會 以 人 類 易 讀 的 格 式 將 其 完 整 的 狀 態 記 錄 到 日 誌 中 。 日 期 的 格 式 與 systemd-analyze dump 的 輸 出 格 式 相 同 。

SIGHUP 重 新 加 載 守 護 進 程 的 配 置 文 件 。 基 本 上 相 當 於 執 行 systemctl daemon-reload 命 令 。

SIGRTMIN+0 進 入 默 認 模 式 , 啓 動 default.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start default.target 命 令 。

SIGRTMIN+1 進 入 救 援 模 式 , 啓 動 rescue.target 單 元 。 基 本 上 相 當 於 執 行 systemctl isolate rescue.target 命 令 。

SIGRTMIN+2 進 入 緊 急 維 修 模 式 , 啓 動 emergency.target 單 元 。 基 本 上 相 當 於 執 行 systemctl isolate emergency.target 命 令 。

SIGRTMIN+3 關 閉 系 統 , 啓 動 halt.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start halt.target 命 令 。

SIGRTMIN+4 關 閉 系 統 並 切 斷 電 源 , 啓 動 poweroff.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start poweroff.target 命 令 。

SIGRTMIN+5 重 新 啓 動 , 啓 動 reboot.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start reboot.target 命 令 。

SIGRTMIN+6 通 過 內 核 的 kexec 接 口 重 新 啓 動 , 啓 動 kexec.target 單 元 。 基 本 上 相 當 於 執 行 systemctl start kexec.target 命 令 。

SIGRTMIN+13 立 即 關 閉 機 器

SIGRTMIN+14 立 即 關 閉 機 器 並 切 斷 電 源

SIGRTMIN+15 立 即 重 新 啓 動

SIGRTMIN+16 立 即 通 過 內 核 的 kexec 接 口 重 新 啓 動

SIGRTMIN+20 在 控 制 檯 上 顯 示 狀 態 消 息 。 相 當 於 使 用 systemd.show_status=1 內 核 引 導 選 項 。

SIGRTMIN+21 禁 止 在 控 制 檯 上 顯 示 狀 態 消 息 。 相 當 於 使 用 systemd.show_status=0 內 核 引 導 選 項 。

SIGRTMIN+22, SIGRTMIN+23 將 日 誌 等 級 設 爲 "debug"(22) 或 "info"(23)。 相 當 於 使 用 systemd.log_level=debugsystemd.log_level=info 內 核 引 導 選 項 。

SIGRTMIN+24 立 即 退 出 systemd 用 戶 實 例 (也 就 是 僅 對 --user 實 例 有 效 )。

SIGRTMIN+26, SIGRTMIN+27, SIGRTMIN+28 將 日 誌 等 級 設 爲 "journal-or-kmsg"(26) 或 "console"(27) 或 "kmsg"(28)。 相 當 於 使 用 systemd.log_target=journal-or-kmsgsystemd.log_target=consolesystemd.log_target=kmsg 內 核 引 導 選 項 。

環 境 變 量

$SYSTEMD_LOG_LEVEL

systemd 日 誌 等 級 。 可 以 被 --log-level= 選 項 覆 蓋 。

$SYSTEMD_LOG_TARGET

systemd 日 誌 目 標 。 可 以 被 --log-target= 選 項 覆 蓋 。

$SYSTEMD_LOG_COLOR

systemd 是 否 應 該 高 亮 重 要 的 日 誌 信 息 。 可 以 被 --log-color= 選 項 覆 蓋 。

$SYSTEMD_LOG_LOCATION

systemd 是 否 應 該 在 日 誌 信 息 中 包 含 代 碼 位 置 (code location)。 可 以 被 --log-location= 選 項 覆 蓋 。

$XDG_CONFIG_HOME, $XDG_DATA_HOME

systemd 用 戶 實 例 根 據 XDG Base Directory specification [4] 規 範 使 用 這 些 變 量 加 載 單 元 文 件 及 其 .{d,wants,requires}/ 目 錄 。

$SYSTEMD_UNIT_PATH 單 元 目 錄

$SYSTEMD_SYSVINIT_PATH

SysV啓 動 腳 本 目 錄

$SYSTEMD_SYSVRCND_PATH

SysV運 行 級 目 錄

$SYSTEMD_COLORS 控 制 輸 出 內 容 的 色 彩 方 案

$LISTEN_PID, $LISTEN_FDS, $LISTEN_FDNAMES 在 基 於 套 接 字 啓 動 的 過 程 中 由 systemd 設 置 此 變 量 , 以 供 管 理 程 序 使 用 。 詳 見 sd_listen_fds(3) 手 冊 。

$NOTIFY_SOCKET 由 systemd 設 置 此 變 量 , 以 報 告 狀 態 以 及 提 供 啓 動 完 畢 的 通 知 , 以 供 管 理 程 序 使 用 。 詳 見 sd_notify(3) 手 冊 。

內 核 引 導 選 項

當 作 爲 系 統 實 例 運 行 的 時 候 , systemd 能 夠 接 受 下 面 列 出 的 內 核 引 導 選 項 。 [5]

systemd.unit=, rd.systemd.unit= 設 置 默 認 啓 動 的 單 元 。 默 認 值 是 default.target 。 可 用 於 臨 時 修 改 啓 動 目 標 (例 如 rescue.target 或 emergency.target )。 詳 情 參 見 systemd.special(7) 手 冊 。 有 "rd." 前 綴 的 參 數 專 用 於 initrd(initial RAM disk) 環 境 , 而 無 前 綴 的 參 數 則 用 於 常 規 環 境 。

systemd.dump_core= 如 果 設 爲 默 認 值 yes , 那 麼 systemd(PID=1) 將 會 在 崩 潰 時 進 行 核 心 轉 儲 , 否 則 不 進 行 任 何 轉 儲 。

systemd.crash_chvt= 可 以 設 爲 一 個 1-63 之 間 的 整 數 或 布 爾 值 。 若 設 爲 整 數 則 systemd(PID=1) 將 在 崩 潰 時 切 換 到 指 定 編 號 的 虛 擬 控 制 檯 ; 若 設 爲 yes , 則 表 示 切 換 到 內 核 消 息 所 使 用 的 虛 擬 控 制 檯 ; 若 設 爲 no(默 認 值 ) 則 不 切 換 到 任 何 虛 擬 控 制 檯 。

systemd.crash_shell= 如 果 設 爲 yes , 那 麼 systemd(PID=1) 將 在 崩 潰 10秒 後 啓 動 一 個 shell , 默 認 值 no 則 表 示 即 使 崩 潰 也 不 啓 動 任 何 shell 。 由 於 被 啓 動 的 shell 不 需 要 任 何 密 碼 認 證 , 所 以 使 用 這 個 特 性 時 需 要 注 意 其 帶 來 的 安 全 隱 患 。

systemd.crash_reboot= 如 果 設 爲 yes, 那 麼 systemd(PID=1) 將 在 崩 潰 10秒 後 自 動 重 啓 整 個 機 器 , 默 認 值 no 則 表 示 即 使 崩 潰 也 不 重 啓 (無 限 制 的 死 在 那 裏 ), 這 樣 可 以 避 免 進 入 循 環 重 啓 。 如 果 與 systemd.crash_shell=yes 同 時 使 用 , 那 麼 系 統 將 在 退 出 shell 之 後 重 啓 。

systemd.confirm_spawn= 設 爲 yes 表 示 systemd(PID=1) 在 派 生 新 進 程 時 進 行 確 認 提 示 。 默 認 值 no 表 示 不 提 示 。

systemd.show_status= 啓 動 時 是 否 在 控 制 檯 上 顯 示 簡 明 的 服 務 狀 態 。 可 以 接 受 yes(顯 示 ), no(不 顯 示 ), auto(自 動 )三 個 值 。 autono 相 似 , 不 同 之 處 在 於 當 某 個 服 務 啓 動 失 敗 或 者 啓 動 耗 時 太 長 時 , 將 會 顯 示 其 狀 態 。 當 使 用 了 quiet 內 核 引 導 選 項 的 時 候 , 默 認 值 是 auto , 否 則 默 認 值 是 yes

systemd.log_target=, systemd.log_level=, systemd.log_color=, systemd.log_location= 用 於 控 制 日 誌 輸 出 , 含 義 與 之 前 的 $SYSTEMD_LOG_TARGET, $SYSTEMD_LOG_LEVEL, $SYSTEMD_LOG_COLOR, $SYSTEMD_LOG_LOCATION 環 境 變 量 相 同 。

systemd.default_standard_output=, systemd.default_standard_error= 設 置 服 務 的 默 認 標 準 輸 出 與 標 準 錯 誤 , 含 義 與 相 應 的 --default-standard-output=--default-standard-error= 命 令 行 選 項 相 同 。

systemd.setenv= 接 受 "VARIABLE=VALUE"格 式 的 字 符 串 , 可 用 於 爲 派 生 的 子 進 程 設 置 默 認 環 境 變 量 。 可 以 多 次 使 用 以 設 置 多 個 變 量 。

systemd.machine_id= 接 受 一 個 32字 符 表 示 的 16進 制 值 , 用 作 該 主 機 的 machine-id 。 主 要 用 於 網 絡 啓 動 , 以 確 保 每 次 啓 動 都 能 得 到 相 同 的 machine-id 值 。

quiet 關 閉 啓 動 過 程 中 的 狀 態 輸 出 。 相 當 於 systemd.show_status=no 的 效 果 。 注 意 , 因 爲 此 選 項 也 同 樣 被 內 核 所 識 別 , 並 用 于 禁 止 輸 出 內 核 日 誌 , 所 以 使 用 此 選 項 會 導 致 同 時 關 閉 內 核 與 systemd 的 輸 出 。

debug 開 啓 調 試 輸 出 , 等 價 於 設 置 了 systemd.log_level=debug 。 注 意 , 因 爲 此 選 項 也 同 樣 被 內 核 所 識 別 , 並 用 於 開 啓 內 核 的 調 試 輸 出 , 所 以 使 用 此 選 項 會 導 致 同 時 開 啓 內 核 與 systemd 的 調 試 輸 出 。

emergency, rd.emergency, -b 啓 動 到 緊 急 維 修 模 式 。 等 價 於 設 置 了 systemd.unit=emergency.targetrd.systemd.unit=emergency.target

rescue, rd.rescue, single, s, S, 1 啓 動 到 救 援 模 式 。 等 價 於 設 置 了 systemd.unit=rescue.targetrd.systemd.unit=rescue.target

2, 3, 4, 5 啓 動 到 對 應 的 SysV 運 行 級 。 等 價 於 設 置 了 對 應 的 systemd.unit=runlevel2.target, systemd.unit=runlevel3.target, systemd.unit=runlevel4.target, systemd.unit=runlevel5.target,

locale.LANG=, locale.LANGUAGE=, locale.LC_CTYPE=, locale.LC_NUMERIC=, locale.LC_TIME=, locale.LC_COLLATE=, locale.LC_MONETARY=, locale.LC_MESSAGES=, locale.LC_PAPER=, locale.LC_NAME=, locale.LC_ADDRESS=, locale.LC_TELEPHONE=, locale.LC_MEASUREMENT=, locale.LC_IDENTIFICATION= 設 置 相 應 的 系 統 locale , 會 覆 蓋 /etc/locale.conf 中 的 設 置 。 參 見 locale.conf(5)locale(7) 手 冊 。 更 多 內 核 引 導 選 項 的 解 釋 , 參 見 kernel-command-line(7) 手 冊 。

SOCKETS 與 FIFOS

/run/systemd/notify 通 知 守 護 進 程 狀 態 的 UNIX socket 文 件 , 用 於 實 現 sd_notify(3) 中 實 現 的 守 護 進 程 通 知 邏 輯 。

/run/systemd/private 僅 被 systemctl(1) 工 具 內 部 用 於 與 systemd 進 程 通 信 的 UNIX socket 文 件 。 其 他 進 程 不 應 該 使 用 它 。

/dev/initctl 由 systemd-initctl.service 單 元 提 供 的 與 傳 統 SysV 兼 容 的 客 戶 端 接 口 (FIFO)。 這 是 一 個 即 將 被 廢 棄 的 接 口 , 儘 量 不 要 使 用 它 。

參 見

systemd Homepage [6] , systemd-system.conf(5), locale.conf(5), systemctl(1), journalctl(1), systemd-notify(1), daemon(7), sd-daemon(3), systemd.unit(5), systemd.special(5), pkg-config(1), kernel-command-line(7), bootup(7), systemd.directives(7)

NOTES

1.

cgroups

https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt

2.

Container Interface

http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface

3.

initrd Interface

http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface

4.

XDG Base Directory specification

http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

5. 當

systemd 在 Linux 容 器 中 運 行 的 時 候 , 這 些 參 數 可 以 直 接 在 systemd

命 令 行 上 傳 遞 (放 置 在 所 有 命 令 行 選 項 之 後 ), 當 systemd 不 在 Linux 容 器 中 運 行 的 時 候 , 這 些 參 數 將 從 /proc/cmdline 中 獲 取 。

6.

systemd Homepage

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

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 翻 譯 人 員 : 金 步 國 金 步 國 作 品 集 : http://www.jinbuguo.com 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh