我对 Linux 很陌生,我正在设置 Debian 服务器。由于大多数时候我不需要 GUI,所以我想禁用它在启动时运行并浪费系统资源。
不过,我仍然希望用它来运行 Firefox 并执行使用命令行可能会很困难的任务。
我尝试对这个主题进行一些研究,人们似乎说这条线可以做到这一点:
#update-rc.d -f gdm remove
(我假设哈希值表示我应该将其输入终端;如果我将其留在终端中,则不会发生任何事情)
如果我以 root 身份 SSH 并输入该行,我会收到结果:
update-rc.d: using dependency based boot sequencing
这是非常神秘的。当我之后重新启动计算机时,GNOME 会立即恢复。有谁知道我在这里做错了什么?
答案1
根据您运行的 debian 版本,它可以是
update-rc.d -f gdm remove
或者
update-rc.d -f gdm3 remove
重新启动..就是这样!我刚刚测试过
答案2
图形环境由“X 显示管理器”启动。根据您运行的 Debian 版本,可以是gdm
或gdm3
(至少对于 GNOME;还有其他显示管理器,例如kdm
KDE)。
您可以通过查看来检查系统上正在使用哪个显示管理器/etc/X11/default-display-manager
。您可以通过编辑该文件来更改它。您可以通过更改该文件以包含(例如)来禁用它none
。但是这样你就无法在需要时手动启动它(尽管startx
仍然可以正常工作)。
或者,您可以将 gdm3(或任何一个)更改为不在引导时启动。您可以像任何其他服务一样通过操作 中的链接来执行此操作/etc/rc?.d
。在最近的 Debian 上,您可以使用update-rc.d gdm3 disable
.然后您可以通过运行手动启动它service gdm3 start
。
答案3
假设系统是 Red Hat 变体(Debian 方向略有不同) - 请参阅 U&L 问题:如何在不使用 GUI 的情况下将 Debian 启动到文本模式?
红帽变种
gdm
您可能想考虑在运行级别 3 而不是运行级别 5 下运行系统,而不是删除。
运行级别
ID Name Description
-- ---- -----------
0 Halt Shuts down the system.
1 Single-user Mode Mode for administrative tasks.
2 Multi-user Mode Does not configure network interfaces
and does not export networks services.
3 Multi-user Mode with Networking Starts the system normally.
4 Not used/User-definable For special purposes.
5 Start the system normally with As runlevel 3 + display manager.
appropriate display manager.
( with GUI )
6 Reboot Reboots the system.
您可以使用以下命令查看系统处于哪个运行级别runlevel
:
$ runlevel
N 5
这向您显示了以前和当前的运行级别。如果没有先前的运行级别,则 aN
会替换该位置。
要更改运行级别,您可以使用命令临时执行此操作telinit <runlevel>
,例如:
telinit 3
现在重新运行runlevel
显示:
$ runlevel
5 3
要使此更改永久生效,您可以编辑该文件/etc/inittab
并更改此行:
$ sudo vim /etc/inittab
id:3:initdefault:
然后重新启动,您的系统现在应该处于运行级别 3。
检查配置
要查看是否为给定的运行级别配置了服务,您可以使用以下命令chkconfig
:
chkconfig --list | grep ssh
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
因此ssh
设置为在运行级别 2、3、4 和 5 中启动。
Debian/Ubuntu 变体
在 Debian/Ubuntu 上,事物的位置不同,运行级别也不同。
运行级别
0 - shutdown
1 - single user mode
2 - multiuser graphical mode
6 - reboot
默认运行级别为 2。您可以使用以下命令确认这一点runlevel
:
$ runlevel
N 2
可以使用以下命令更改运行级别telinit
:
telinit 3
要使这些更改永久生效,您可以编辑该文件:/etc/init/rc-sysinit.conf
并更改以下行:
$ sudo vim /etc/init/rc-sysinit.conf
env DEFAULT_RUNLEVEL=2
sysv-rc-conf
可以从终端使用该工具sysv-rc-conf
来询问哪些服务在给定的运行级别上运行。例如:
$ sysv-rc-conf --list|grep rsync
rsync 2:on 3:on 4:on 5:on
然而,有些服务不会显示在此之下。在 Debian/Ubuntu 下,sysV 服务机制正在被一种名为upstart
.
$ status ssh
ssh start/running, process 928
您可以看到服务将以哪个运行级别启动,如下所示:
$ initctl show-config ssh
ssh
start on (filesystem or runlevel [2345])
stop on runlevel [!2345]
答案4
在我的 Debian 系统上,显示管理器是 LightDM,因此为了将其从引导过程中删除,我发出了update-rc.d lightdm disable
.