Debian

在 debian 上停止/啟動 gui

  • September 26, 2013

我想在沒有 GUI 的情況下啟動 Debian,然後只需鍵入命令以啟動所需的程序(位於我的本地電腦上),例如

$ chromium-browser &

當連接到 LAN 上的其他機器時,我已經做了類似的事情ssh- 如果我需要視覺化 csv 數據,例如在soffice. 我目前安裝了 gnome 桌面和 Debian 7。

找到了一些使用 Debian 在啟動時禁用 GUI 的說明,但是我不願意嘗試它們,因為一旦我這樣做了,我害怕被鎖定無法使用 Web 瀏覽器(如果我需要它來使用瀏覽器尋求幫助進度停止了)。

我想知道是否可以暫時測試在其他終端之一(例如ctrl+alt+f1)上啟動 GUI 的方法,看看是否有任何問題?這行得通嗎?在沒有 GUI 的情況下啟動是否相當於啟動 GUI?

如果這是可行的,請有人提供完整的說明:

  • 在終端上啟用 GUI,f1以便我可以執行 gui 程序(不顯示完整的桌面界面)
  • 在啟動時關閉桌面界面 GUI

顯然我需要執行 X11 來載入 GUI 程序——這很好,但我希望啟動到文本模式,然後根據需要執行 GUI 程序。

在 ubuntu 12.04 virtualbox vm 上做一些測試(希望與 debian 7 沒有太大不同?)…

$ ps aux | grep gdm
# *blank*
$ ps aux | grep kdm
# *blank*
$ ps aux | grep lightdm
root      1225  0.0  0.0 270664  3500 ?        Ssl  12:43   0:00 lightdm
root      1234  1.9  2.2 236564 112276 tty7    Ss+  12:43   0:01 /usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
root      1382  0.0  0.0 156772  3572 ?        Sl   12:43   0:00 lightdm --session-child 12 19
$ sudo update-rc.d lightdm disable
update-rc.d: warning: /etc/init.d/lightdm missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Disabling system startup links for /etc/init.d/lightdm ...
Removing any system startup links for /etc/init.d/lightdm ...
  /etc/rc0.d/K20lightdm
  /etc/rc1.d/K20lightdm
  /etc/rc2.d/K80lightdm
  /etc/rc3.d/K80lightdm
  /etc/rc4.d/K80lightdm
  /etc/rc5.d/K80lightdm
  /etc/rc6.d/K20lightdm
Adding system startup for /etc/init.d/lightdm ...
  /etc/rc0.d/K20lightdm -&gt; ../init.d/lightdm
  /etc/rc1.d/K20lightdm -&gt; ../init.d/lightdm
  /etc/rc6.d/K20lightdm -&gt; ../init.d/lightdm
  /etc/rc2.d/K80lightdm -&gt; ../init.d/lightdm
  /etc/rc3.d/K80lightdm -&gt; ../init.d/lightdm
  /etc/rc4.d/K80lightdm -&gt; ../init.d/lightdm
  /etc/rc5.d/K80lightdm -&gt; ../init.d/lightdm
$ sudo shutdown -r 0

並且 gui 重新啟動後重新啟動並執行!所以這顯然沒有達到預期的效果。然而:

$ sudo /etc/init.d/lightdm stop

殺死gui。移動到 tty2(按ctrl+alt+f2)並嘗試打開 Firefox:

$ firefox &
Error: no display specified

所以試圖指定一個顯示:

$ export DISPLAY='0.0'
$ firefox &
Error: cannot open display: 0.0

現在我被困住了。我仍然可以ctrl+alt+f7通過在 tty2 中輸入以下內容來重新啟動 gui:

$ sudo /etc/init.d/lightdm start

但這不是我想要的。我只想能夠在不顯示所有其他桌面內容(例如時鐘和菜單欄等)的情況下執行 Firefox。

在金發姑娘的回答中嘗試一些東西

$ sudo /etc/init.d/lightdm stop
$ echo "#!/bin/bash" &gt; ~/.xinitrc
$ echo "exec firefox" &gt;&gt; ~/.xinitrc
$ xinit

這正是我想要的:)

禁用 xdm/kdm/gdm/whichever-dm-you-have 的說明是正確的。如果您不這樣做,您將啟動到圖形登錄(即 dm = 顯示管理器),然後每當您退出 X(這應該很簡單ctrl-alt-backspace——嘗試一下,但先關閉您的應用程序),DM將重新生成另一個圖形登錄,從而無法逃脫 GUI。

debian 的另一種可能性是檢查/etc/rc[N].d不啟動 dm 的執行級別,並將其設置為initdefaultin /etc/inittab。我手頭沒有未經修改的 debian 系統,所以我不能說會是哪個——可能是 2。 不要選擇 0、1 或 6。

禁用 dm 後,您將啟動到登錄控制台。startx從那裡您可以使用命令啟動X。這包括一個預設的 DE,如果您一直在使用 gnome,那可能就是它。您還可以創建一個~/.xinitrc,這是一個將代替預設執行的 shell 腳本。通常,它們可能非常小,例如:

#!/bin/sh

exec gnome-session

應該啟動 gnome(我相信——我手頭也沒有 gnome 系統)。

請注意,您不能在沒有 X 的情況下執行 GUI 應用程序;從您的文章中不清楚您是否了解這一點。GUI 程序實際上是需要 Xorg伺服器才能工作的*客戶端。*您可以通過將行替換為應用程序名稱來啟動沒有 DE 或 WM 和特定應用程序的裸 X ,但請注意,您將無法啟動其他任何內容,並且當您關閉該應用程序時,您將看著一個空白的螢幕,裡面漂浮著一個游標。 exec gnome-session

這一切都沒有什麼危險的,如果你願意,很容易重新啟用 DM。

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