关于LINUX运行级别
Linux启动时,会首先启动一个叫做init的进程,然后由它来启动后面的任务,包括多用户环境、网络等。而运行级就是操作系统当前正在运行的功能级别,这个级别从1到6,具有不同的功能,这些级别在/etc/inittab文件里指定,这个文件是init进程寻找的主要文件。最先运行的服务是那些放在/etc/rc.d 目录下的文件。
大多数的Linux发行版本中,启动/停止脚本位于/etc/rc.d/init.d。这些脚本被ln命令来连接到/etc/rc.d/rcn.d目录。(这里的n 就是运行级0-6) 例如/etc/rc.d/rc2.d下面的S10network就是连接到/etc/rc.d/init.d下的network脚本的。
其中,rcn.d下面的文件就是和运行级n有关的,文件开头的S代表start就是启动服务的意思,后面的数字10就是启动的顺序。例如,在/etc/rc.d/rc2.d目录下,你可以看到S80postfix这个文件,80就是顺序在10以后,因为没有启动网络的情况下,启动postfix是没有任何作用的。那些K开头的文件,例如K45named,K代表kill掉进程。
例如在/etc/rc.d/rc3.d里面,可以看到文件S60nfslock,但是这个文件不存在于/etc/rc.d/rc2.d目录下。这是一个和NFS相关的脚本,但是在运行级别2下是不支持NFS的,所以在/etc/rc.d/rc2.d下,没有S60nfslock。
标准的Linux运行级为3或者5,如果是3的话,系统就在多用户状态。如果是5的话,则是运行着X Window 系统。如果目前正在3或5,而你把运行级降低到2的话,init就会执行/etc/rc.d/rc2.d里面的脚本。
不同的运行级定义如下:(可以参考Red Hat Linux里面的/etc/inittab)
# 缺省的运行级,RHS用到的级别如下:
# 0 - 为停机,机器关闭(千万不要把initdefault设置为0 )
# 1 - 为单用户模式,就像Win9x下的安全模式类似
# 2 - 为多用户模式,但是没有NFS支持
# 3 - 为完整的多用户模式,是标准的运行级
# 4 - 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
# 5 - 就是X11,进到X Window系统了
# 6 - 重新启动(千万不要把initdefault设置为6 )
不同的运行级有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户状态来设置。在启动后的lilo提示符下输入:
init=/bin/sh rw 就可以使机器进入运行级1,并把root文件系统挂为读写。它会跳过所有系统认证,让你使用passwd程序来改变root口令,然后启动到一个新的运行级。