在 debian 上停止/啟動 gui
我想在沒有 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 -> ../init.d/lightdm /etc/rc1.d/K20lightdm -> ../init.d/lightdm /etc/rc6.d/K20lightdm -> ../init.d/lightdm /etc/rc2.d/K80lightdm -> ../init.d/lightdm /etc/rc3.d/K80lightdm -> ../init.d/lightdm /etc/rc4.d/K80lightdm -> ../init.d/lightdm /etc/rc5.d/K80lightdm -> ../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" > ~/.xinitrc $ echo "exec firefox" >> ~/.xinitrc $ xinit
這正是我想要的
:)
禁用 xdm/kdm/gdm/whichever-dm-you-have 的說明是正確的。如果您不這樣做,您將啟動到圖形登錄(即 dm = 顯示管理器),然後每當您退出 X(這應該很簡單
ctrl-alt-backspace
——嘗試一下,但先關閉您的應用程序),DM將重新生成另一個圖形登錄,從而無法逃脫 GUI。debian 的另一種可能性是檢查
/etc/rc[N].d
不啟動 dm 的執行級別,並將其設置為initdefault
in/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。