Systemd

為什麼 upstart 是 systemd 的子程序?

  • May 30, 2017
🌐 pstree -h

systemd─┬─ModemManager─┬─{gdbus}
       │              └─{gmain}
       ├─NetworkManager─┬─dhclient
       │                ├─dnsmasq
       │                ├─{gdbus}
       │                └─{gmain}
       ├─accounts-daemon─┬─{gdbus}
       │                 └─{gmain}
       ├─acpid
       ├─agetty
       ├─avahi-daemon───avahi-daemon
       ├─cron
       ├─cups-browsed─┬─{gdbus}
       │              └─{gmain}
       ├─dbus-daemon
       ├─gnome-keyring-d─┬─{gdbus}
       │                 ├─{gmain}
       │                 └─{timer}
       ├─irqbalance
       ├─lightdm─┬─Xorg
       │         ├─lightdm─┬─upstart─┬─Thunar─┬─chrome─┬─2*[cat]
       │         │         │         │        │        ├─chrome─┬─chrome─┬─chr+
       │         │         │         │        │        │        │        ├─chr+
       │         │         │         │  

我讀到,有幾個流程管理系統

  • systemVinit,傳統的 UNIX 系統
  • 新貴,是 Ubuntu 自帶的
  • systemd,另一個新的,因其複雜性而備受爭議

在使用systemVinit的 PC 上,所有程序的程序,頂部的第一個稱為init ,在使用****systemd的PC 上,第一個稱為systemd

現在,當我跑步時

pstree

我注意到,正如 systemd 程序管理系統所期望的那樣,systemd 是第一個程序,但讓我感到困惑的是,upstart 是 systemd 的子程序(systemd–>lightdm–>lightdm–>upstart)。

為什麼會這樣,為什麼一個程序管理系統是另一個程序管理系統的子程序?(至少這是我認為的)

這與追溯兼容性有關,並且與從遷移upstartsystemd可能會在 Ubuntu 15.04 上造成災難性故障的情況有關。引用systemd進入 Ubuntu的公告:

應急計劃:如果幾週後我們發現有太多或太大的回歸,我們可以通過兩個簡單的上傳(ubuntu-standard 和 init)預設恢復為暴發戶。

這裡的另一個細節是,Ubuntu 在 16.10 之前沒有“完全遷移”到 systemd,圖形登錄仍然由 upstart 而不是 systemd 管理(即使這樣,作為首選的 init 管理器)。此處公告:

正如在 UDS 1中所討論的,我們正在從使用 upstart 啟動圖形桌面會話轉向 systemd(以及在某些情況下適當的 D-Bus 啟動)。兩週前,Sebastien Bacher、Iain Lane、Ted Gould 和我進行了為期三天的衝刺,我們在其中轉換了 Ubuntu 會話的大部分服務,以及在我在 systemd 和 upstart 中處理必要的基礎架構之前/之後,並轉換/檢查了大多數其他口味。現在已經準備好登陸並進行更廣泛的測試。

Ubuntu 曾經/正在以一種非常安全的方式遷移到 systemd,首先將ConsoleKit 相關的東西遷移到 2013systemd-logind,然後遷移 init 本身和其餘單元,以避免出現問題。

**tl,dr:**在您的特定情況下,upstart可能仍然是管理圖形登錄相關內容的人(lightdm)…

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