Debian

Debian Jessie 更新後 startx 自動登錄不在 /etc/inittab 中執行

  • March 11, 2017

我安裝了一個沒有 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-rcopenrcrc包中有可以與 System 5 一起使用的替代程序。) init

/etc/inittab是由init. systemd 沒有為此提供任何向後兼容機制。systemd 的 System 5 向後兼容機制僅適用於 System 5 rc,它在/etc/init.d/. (systemd 也沒有為 file-rc 和 openrc 的配置機制實現向後兼容機制。)

這不是 systemd 特有的。幾乎沒有替代初始化/系統管理器——從 Felix von LeitnerminitinitNG和新貴到system-managerin nosh——程序/etc/inittab。唯一看到的/etc/inittab是 Nikola Vladov 的ninit

要將服務插入 systemd,您必須使用它支持的機制*,即它自己的服務單元文件rc/etc/init.d/. 當然,如何startx作為 systemd 服務執行是一個不同的問題*。

進一步閱讀

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