ubuntu修改runlevel

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试试看是不是到了文本界面下。 
参考文献: 
http://www.linuxdiyf.com/viewarticle.php?id=92001 
http://www.debianadmin.com/debian-and-ubuntu-linux-run-levels.html 

 

上面的步骤,我们再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,把上面的启动相关事件注释掉,改写下就行了

 

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)
and runlevel [345])
stop on runlevel [0126]

 

 

剩下,重启就OK了!

posted on 2012-09-15 10:49  Fra~~kaka  阅读(339)  评论(0编辑  收藏  举报