我想在没有 GUI 的情况下启动 Debian,然后只需键入命令即可启动所需的程序(位于我的本地计算机上),例如
$ chromium-browser &
当连接到 LAN 上的其他计算机时,我已经做了类似的事情ssh
- 如果我需要可视化 csv 数据,例如在soffice
.我目前安装了 gnome 桌面和 Debian 7。
我有找到了一些关于在 Debian 启动时禁用 GUI 的说明,但是我不愿意尝试它们,因为担心一旦我这样做就会被锁定而无法使用网络浏览器(如果我遇到困难,我将需要它来寻求使用浏览器的帮助)。
我想知道是否可以暂时测试在其他终端之一(例如ctrl+alt+f1
)上启动 GUI 的方法,看看是否有任何问题?这行得通吗?在没有GUI的情况下启动时是否相当于启动GUI?
如果可行,请有人提供以下完整说明:
- 在终端上启用 GUI
f1
,以便我可以运行 GUI 程序(不显示完整的桌面界面) - 启动时关闭桌面界面 GUI
显然我需要运行 X11 来加载 GUI 程序 - 这很好,但我希望启动到文本模式,然后根据需要执行 GUI 程序。
在 ubuntu 12.04 virtualbox 虚拟机上进行一些测试(希望与 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
这正是我想要的:)
答案1
禁用 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。
答案2
在启动时关闭 GUI:
update-rc.d gdm3 disable # if you using gdm3
update-rc.d kdm disable #if you using kdm
但是,如果两者都有,请运行这两个命令。
用于在启动时禁用图形模式ubuntu OS
:
echo "manual" | tee -a /etc/init/lightdm.override
因为ubuntu
使用Upsatrt
并调用lightdm
为upstart service
.
在UNIX世界中图形环境有3层:
- X #支持键盘、鼠标和一些驱动
- Window Manager # 句柄装饰器、win 标题等
- 显示管理器 # 创建窗口之间的通信。
当您运行 gdm3 或 kdm 时,您会导致运行 3layers。
如果你想在网络上运行图形程序,你只需要第1层:X.你应该设置:
export DISPLAY=YOUR_DEST_IP:0.0
然后运行你的程序。