Ubuntu/Debian都是笔者最长用的Linux系统了,因为给客户部署的服务器操作系统100%都是Debian/Linux,最近传闻客户有需求想使用RedHat.无奈学习之。无意中发现RedHat的runlevel分为6个级别(大部分Linux的runlevel都是如此),而作为服务器来说因为没有图形界面,因此默认运行级别都是3。因为笔者对Linux了解不多,顺便查看了一下自己使用的Ubuntu服务器的runlevel。结果查看之下,居然是2。这让笔者有些疑惑,不适说Linux的runlevel一般都是3吗?难道Ubuntu与其它的不同,于是笔者连接到另一台Debian服务器,结果发现如出一辙,runlevel也是2.接下来查看/etc/inittab
# /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot.
从inittab文件中可以看出,runlevel 2-5相同。。。经过多方资料参考最后才确认此事。 Ubuntu的默认开机的runlevel是2,可以用runlevel命令来查看当前的默认运行级别。
runlevel N 2
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
可以发现Debian或者Ubuntu中定义的Runlevel 2~5级是没有任何区别的。而redhat的runlevel级别定义如下:
# Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this)
对应的配置文件夹如下:
/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
Redhat默认以runlevel 5启动(server默认3),Debian/Ubuntu默认以runlevel 2启动。这里的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试试看是不是到了文本界面下。
[ad#468-60]