Systemd

為什麼每個登錄的使用者都擁有一個“systemd”程序?

  • December 19, 2018

在我的ps輸出中:

root         1  0.0  0.0 225552  5316 ?  Ss  /lib/systemd/systemd --system --deserialize 19
message+   572  0.0  0.0  51564  3076 ?  Ss  /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
root       590  0.0  0.0  71084  2084 ?  Ss /lib/systemd/systemd-logind
t          929  0.0  0.0  76872  1988 ?  Ss /lib/systemd/systemd --user
t          980  0.0  0.0  50792  2688 ?  Ss /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
systemd+  2632  0.0  0.0  71240  2464 ?  Ss /lib/systemd/systemd-resolved
systemd+  2637  0.0  0.0 143976   712 ?  Ssl /lib/systemd/systemd-timesyncd
root      2642  0.0  0.4 232544 37308 ?  S<s /lib/systemd/systemd-journald
root      3334  0.0  0.0  46108  2252 ?  Ss /lib/systemd/systemd-udevd
testme   22693  0.0  0.0  76964  3428 ?  Ss /lib/systemd/systemd --user

為什麼我有這麼多與 systemd 相關的程序?

特別是,為什麼systemd每個登錄的使用者都擁有一個程序?

在 Linux 的引導順序中,核心作為第一個程序啟動 init 系統,然後執行 init 程序,login以便每個使用者都可以登錄。我認為init系統應該作為一個單例程序執行,不管有多少使用者登錄,也不管init系統是sysvinit還是systemd,對嗎?

是否root必須登錄才能開始其systemd程序?

對於那些不屬於 root 的 systemd 程序,它們是否作為守護程序執行?

謝謝。

init 程序是 pid 1,並且 root 肯定不必登錄來啟動它。其他程序不是 init 程序。

各種每使用者 systemd 程序管理每個使用者的服務。其中包括使用者服務 ( systemctl --user start ...) 和一些“每個使用者的守護程序”(在 GNOME 中,您會看到 PulseAudio、各種 GVFS 程序等)。

其他 systemd 程序處理特定服務:解析器、時間同步服務、日誌等。

您的ps輸出顯示這些程序都沒有控制終端,因此它們都作為守護程序執行(對於某些守護程序值)。

systemd 有很好的文件,tryman systemdman systemd-logind

引用自:https://unix.stackexchange.com/questions/489907