為什麼 upstart 是 systemd 的子程序?
🌐 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)。
為什麼會這樣,為什麼一個程序管理系統是另一個程序管理系統的子程序?(至少這是我認為的)
這與追溯兼容性有關,並且與從遷移
upstart
到systemd
可能會在 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 相關的東西遷移到 2013年
systemd-logind
,然後遷移 init 本身和其餘單元,以避免出現問題。**tl,dr:**在您的特定情況下,
upstart
可能仍然是管理圖形登錄相關內容的人(lightdm
)…