对于那些在DOS/Win9x/NT 平台下的高级用户而言,linux 似乎是一个怪物。没有config.sys ,没有autoexec.bat,具有个人特色的机器配置不知道从何开始。
需要说明的是,很多人认为linux 是Unix 的一个克隆,但是,这种说法对于Linux 是不公平的。
linux比Unix更加开放,功能更强大。我们应该称之为GNU/linux 。
linux 启动时,运行一个叫做init的程序,然后由它来启动后面的任务,包括多用户环境,网络等。
那么,到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从1 到6 ,具有不同的功能。
这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。(相关阅读:linux下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 脚本的。
因此,我们可以知道,rc2.d 下面的文件就是和运行级2 有关的。
文件开头的S 代表start 就是启动服务的意思,对话框png 后面的数字10 就是启动的顺序。
例如,在同一个目录下,你还可以看到 S80postfix 这个文件,80 就是顺序在 10 以后,因为没有启动网络的情况下,启动postfix是没有任何作用的。
再看一下 /etc/rc.d/rc3.d,可以看到文件S60nfslock,但是这个文件不存在于 /etc/rc.d/rc2.d 目录下。
NFS 要用到这个文件,一般用在多用户环境下,所以放在rc3.d 目录下。
另外,在/etc/rc.d/rc2.d 还可以看到那些K 开头的文件,例如/etc/rc.d/rc2.d/K45named,K 代表 kill 。
标准的linux运行级为3 或者5 ,如果是3 的话,系统就在多用户状态。如果是5的话,则是运行着X Window系统。
如果目前正在3或5,而你把运行级降低到2的话,init 就会执行K45named 脚本。
不同的运行级定义如下:(可以参考/etc/inittab)
对各个运行级的详细解释:
例如,在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是 X11 ,进到 X Window 系统了。
6 为重启,运行 init 6 机器就会重启。
不同的运行级有不同的用处,也应该根据自己的不同情形来设置。
例如,如果丢失了root 口令,那么可以让机器启动进入单用户状态来设置。
在启动后的 lilo 提示符下输入:
init=/bin/sh rw
就可以使机器进入运行级1 ,并把 root 文件系统挂为读写。
它会跳过所有系统认证,让你使用passwd 程序来改变root口令,然后启动到一个新的运行级。