Chinaunix首页 | 论坛 | 博客

分类: LINUX

2009-01-24 14:25:15

Run level 之变换:
在我们完成上面的所有资讯后,其实整个 Linux 主机就已经在等待我们使用者的登入啦! 但是,相信您应该还是会有一点疑问的地方,那就是:‘我该如何切换 run level 呢?’会不会很难啊?不会啦!很简单~ 但是依据执行的时间而有不同的方式啊!

事实上,与 run level 有关的启动其实是在 /etc/rc.d/rc.sysinit 执行完毕之后。也就是说,其实 run level 的不同仅是 /etc/rc.d/rc[0-6].d 里面启动的服务不同而已。不过,依据开机是否自动进入不同 run level 的设定,我们可以说:

   1. 要每次开机都执行某个预设的 run level ,则需要修改 /etc/inittab 内的设定项目, 亦即是‘ id:3:initdefault: ’里头的数字啊;

   2. 如果仅只是暂时变更系统的 run level 时,则使用 init [0-6] 来进行 run level 的变更。 但下次重新开机时,依旧会是以 /etc/inittab 的设定为准。

假设原本我们是以 run level 5 登入系统的,但是因为某些因素,想要切换成为 run level 3 时, 该怎么办呢?很简单啊,利用 init 3 即可切换。但是 init 3 这个动作到底做了什么呢? 我们不是说了吗?事实上,不同的 run level 只是载入的服务不同罢了, 亦即是 /etc/rc.d/rc5.d/ 还有 /etc/rc.d/rc3.d 内的 Sxxname 与 Kxxname 有差异而已。 所以说,当执行 init 3 时,系统会:

    * 先比对 /etc/rc.d/rc3.d/ 及 /etc/rc.d/rc5.d 内的 K 与 S 开头的档案;
    * 关闭 /etc/rc.d/rc5.d/ 内不存在于 /etc/rc.d/rc3.d/ 中的服务;
    * 启动 /etc/rc.d/rc3.d/ 内不存在于 /etc/rc.d/rc5.d/ 中的服务。

也就是说,两个 run level 都存在的服务就不会被关闭啦!如此一来,就很容易切换 run level 了, 而且还不需要重新开机呢!真方便。那我怎么知道目前的 run level 是多少呢? 直接在 bash 当中输入 runlevel 即可啊!

[root@linux ~]# runlevel
N 3

够简单的吧! ^_^ 
阅读(1998) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~