Ubuntu 禁止桌面 (命令行模式)

Ubuntu 禁止桌面 (命令行模式)

2011-06-13. Category & Tags: Others Others

Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别。

debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且runlevel定义也与redhat有区别。

debian的runlevel级别定义如下:
0 - Halt
1 - Single
2 - Full multi-user with display manager (GUI)
3 - Full multi-user with display manager (GUI)
4 - Full multi-user with display manager (GUI)
5 - Full multi-user with display manager (GUI)
6 - Reboot

可以发现2~5级是没有任何区别的。

######而redhat的runlevel级别定义如下:
######0 - Halt
######1 - Single
######2 - Not used/User definable
######3 - Full multi-user NO display manager
######4 - Not used/User definable
######5 - Full multi-user with display manager (GUI)
######6 - Reboot

对应的配置文件夹如下:
/etc/rc0.d Run level 0 /etc/rc1.d Run level 1 /etc/rc2.d Run level 2 /etc/rc3.d Run level 3 /etc/rc4.d Run level 4 /etc/rc5.d Run level 5 /etc/rc6.d Run level 6

这里的runlevel3-5都是进入图形界面。这与其他的linux发行版不太一致,通常runlevel 3是Multi user mode,即直接登录到字符界面;而runlevel 5是Multi user mode with GUI,即登录到图形界面。

现在把runlevel3改为Multi user mode需要如下步骤:

一、删除gdm的启动项
找到/etc/rc3.d中的gdm项,把它删除,如果想恢复,可以重新建立一个到/etc/init.d中的gdm链接。

二、修改默认的runlevel
如果暂时修改,可以使用telinit N,这里的N可以是runlevel的代码[0-6]。如果想长期修改,可以在/etc/下建立inittab文件(这个文件在其他发行版中是存在的,而在Debian及其衍生版中是没有的)。文件内容如下

id:3:initdefault:
注意最后的冒号,这样就说明启动时默认为runlevel 3。

sudo reboot试试看是不是到了文本界面下。

上面的步骤,我们再Ubuntu 8.04中执行时可以行的通的,但是在Ubuntu 10.04中就不行了,10.04对对系统进行了很多的改进。

禁止Ubuntu 10.04从桌面启动。

查看gdm启动的配置文件:

cat  /etc/init/gdm.conf

start on (filesystem
and started dbus
and (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1
or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
or stopped udevtrigger))

stop on runlevel [016] 

可见,一旦发生文件系统初始化,DBUS总线启动和发生graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1 or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1 or stopped udevtrigger 这里面的任何一个事件,GDM就会被启动,只在运行级别在016的时候,GDM不启动。

所以,事件也就明了了、要在upstart层面干掉gdm,把上面的启动相关事件注释掉,改写下就行了

剩下,重启就OK了!