Debian Jessie 更新後 startx 自動登錄不在 /etc/inittab 中執行
我安裝了一個沒有 GUI 的最小 Debian 系統(穩定),切換到 testing/jessie 以便能夠獲得 Cinnamon 桌面,但是 X 沒有在啟動時啟動。如果我在 CLI 以我自己的身份登錄,我可以鍵入
startx
啟動 GUI,我沒有任何問題。因此,我將以下內容添加到/etc/inittab
:# The default runlevel. id:5:initdefault: # ... sx:45:once:/bin/su -c /usr/bin/startx -l bateman
這沒有任何影響。為什麼不?更重要的是,如何在不安裝任何軟體的情況下使其工作?
編輯
看起來我的
/etc/inittab
根本沒有做任何事情。改變1:2345:respawn:/sbin/getty 38400 tty1
到
1:2345:respawn:/sbin/getty -a bateman 38400 tty1
不自動登錄(即使在創建並將自己添加到組之後
autologin
)(從這裡開始瘋狂刺傷),並註釋掉3:2345:respawn:/sbin/getty 38400 tty3
不禁用
tty3
. 到底是怎麼回事?
startx
只有在控制台上登錄時,您才有權啟動 X 會話。遠端使用者(例如)沒有獲得此權限。當您從 執行/bin/su -c /usr/bin/startx -l bateman
時/etc/inittab
,您不會得到控制台,因此啟動 X 伺服器會失敗。在執行時獲取 GUI 的正常方法是執行顯示管理器。顯示管理器啟動 X 伺服器並以圖形方式顯示登錄提示。在 Debian wheezy 上,您可以選擇gdm3(Gnome 外觀)、kdm(KDE 外觀)、lightdm(現代,獨立於 DE)、slim(輕量級、可配置)、wdm(WindowMaker 外觀)和xdm(老式,雅典娜的外觀和感覺)。您用作顯示管理器的內容與您登錄後使用的圖形環境無關:顯示管理器的選擇取決於系統管理員,使用者在登錄後都可以使用自己喜歡的環境。
如果您不想因為您的電腦在一個只有您可以進入的房間中而必須在控制台上登錄,那麼幾個顯示管理器可以讓您設置自動登錄。例如,使用 LightDM,編輯
/etc/lightdm/lightdm.conf
並取消註釋該行autologin-user=
並在等號後添加您的使用者名。
systemd 不向後兼容 System 5
init
,僅與 System 5 兼容rc
。您已經從 Debian 7 切換到了未來的 Debian 8。您可能不知道,這已經將您的系統管理從 (Linux) System 5
init
+rc
切換到了 systemd。systemd 是預設的初始化系統,特定的升級會執行此切換。Linux System 5 風格的系統管理包括兩部分,
init
作為程序#1rc
執行,負責執行啟動和停止腳本。這些實際上來自 Debian 中的兩個不同的軟體包。init
來自sysvinit包,rc
通常來自sysv-rc包。(在file-rc和openrcrc
包中有可以與 System 5 一起使用的替代程序。)init
/etc/inittab
是由init
. systemd 沒有為此提供任何向後兼容機制。systemd 的 System 5 向後兼容機制僅適用於 System 5rc
,它在/etc/init.d/
. (systemd 也沒有為 file-rc 和 openrc 的配置機制實現向後兼容機制。)這不是 systemd 特有的。幾乎沒有替代初始化/系統管理器——從 Felix von Leitner
minit
到initNG和新貴到system-manager
in nosh——程序/etc/inittab
。唯一看到的/etc/inittab
是 Nikola Vladov 的ninit。要將服務插入 systemd,您必須使用它支持的機制*,即它自己的服務單元文件
rc
和/etc/init.d/
. 當然,如何startx
作為 systemd 服務執行是一個不同的問題*。進一步閱讀
inittab
. 第 5 節。Ubuntu 14.10 手冊頁。- Tollef Fog Heen (2014-05-11)。 systemd 不尊重
/etc/inittab
. 747742. Debian 錯誤跟踪系統。- 喬納森·德博因·波拉德 (2015)。
/etc/inittab
已成為過去。. 經常給出答案。