ubuntu修改runlevel
Ubuntu的默认开机的runlevel是2,可以用runlevel来查看当前的默认运行级别。
debian系(ubuntu是基于debian)的Linux一直是用runlevel 2来默认启动,并且runlevel定义也与redhat有区别。
debian的runlevel级别定义如下:
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 (filesystemand started dbusand (graphics-device-added fb0 PRIMARY_DEVICE_FOR_DISPLAY=1or drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1or stopped udevtrigger)and runlevel [345])stop on runlevel [0126]
剩下,重启就OK了!