您的位置:首页 > 其它

Run level 的切换,利用run level重启,关机

2014-06-20 17:38 99 查看
Run level 的切换

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

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

要每次启动都运行某个默认的 run level ,则需要修改 /etc/inittab 内的配置项目,亦即是『 id:5:initdefault: 』里头的数字啊;

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

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

先比对 /etc/rc3.d/ 及 /etc/rc5.d 内的 K 与 S 开头的文件;
在新的 runlevel 亦即是 /etc/rc3.d/ 内有多的 K 开头文件,则予以关闭;
在新的 runlevel 亦即是 /etc/rc3.d/ 内有多的 S 开头文件,则予以启动;

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

[root@www ~]# runlevel
N 5
# 左边代表前一个 runlevel ,右边代表目前的 runlevel。
# 由於之前并没有切换过 runlevel ,因此前一个 runlevel 不存在 (N)

# 将目前的 runlevel 切换成为 3 (注意, tty7 的数据会消失!)
[root@www ~]# init 3
NIT: Sending processes the TERM signal
Applying Intel CPU microcode update:        [  OK  ]
Starting background readahead:              [  OK  ]
Starting irqbalance:                        [  OK  ]
Starting httpd:                             [  OK  ]
Starting anacron:                           [  OK  ]
# 这代表,新的 runlevel 亦即是 runlevel3 比前一个 runlevel 多出了上述 5 个服务

[root@www ~]# runlevel
5 3
# 看吧!前一个是 runlevel 5 ,目前的是 runlevel 3 啦!

那么你能不能利用 init 来进行关机与重新启动呢?可以的啦!利用『 init 0 』就能够关机,而『 init 6 』就能够重新启动!为什么?往前翻一下 runlevel 的定义即可了解吧!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: