Chinaunix首页 | 论坛 | 博客
  • 博客访问: 360728
  • 博文数量: 135
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1106
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-20 09:56
文章分类

全部博文(135)

文章存档

2017年(3)

2016年(18)

2015年(69)

2014年(39)

2013年(6)

我的朋友

分类: LINUX

2014-11-20 10:35:09

运行级别Runlevel)指的是Unix或者Linux等类Unix操作系统下不同的运行模式。运行级别通常分为7等,分别是从0到6,但如果必要的话也可以更多。

例如在大多数linux操作系统下一共有如下6个典型的运行级别:
        0 – Halt 停机(不要将0设置为缺省,否则服务器启动后就会马上关闭)
   1 - Single user mode 单用户模式
   2 - Multi-user 不带NFS的多用户模式 (无网络连接)
   3 - Full multi-user mode 完全多用户模式(启动网络连接)
   4 – Unused 未使用
   5 - X11 多用户图形界面
   6 – Reboot 重启(不要将6设置为缺省,否则服务器会不断地重启)

当系统启动时,6个运行级别通过对应的脚本文件来启动相应的服务

        /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

可以使用init(或telinit)命令切换运行模式:

查看修改启动模式run level:
通过runlevel查看系统的运行模式(也可以查看/etc/inittab文件)

修改文件/etc/inittab 来设置机器启动的runlevel

简单来说,运行级别就是让一些程序在一个级别启动,而另外一个级别的时候不启动。/etc/rc.d/init.d中放着各种脚本,每个运行级别对 应的文 件/etc/rc.d/rcN.d中,选择你想在该级别运行的脚本,从/etc/rc.d/init.d中链接过来。而运行级别的文件定义在/etc /inittab下面。

    init是Linux系统里的根进程,是系统所有进程的祖先。它的主要作用是根据记录在/etc/inittab里的一个脚本(script)程序产生进程。这个文件通常用于控制用户的登录模式。Linux系统的有效登录模式有0~9共十种,不过沿用UNIX系统的至多6种的限制,一般只有1到6有效。
   

运行级别就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。

   很多人认为Linux是Unix的一个克隆,但是,这种说法对于Linux是不公平的。Linux比Unix更加开放,功能更强大。我们应该称之为GNU/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脚本的。
  因此,我们可以知道,rc2.d下面的文件就是和运行级2有关的。文件开头的S代表start就是启动服务的意思,后面的数字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脚本。
不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)
# 缺省的运行级,RHS用到的级别如下:
# 0 - 停机 ,机器关闭。
# 1 - 单用户模式 。就像Win9x下的安全模式类似
# 2 - 多用户,但是没有NFS  进入无网络服务的多用户模式
# 3 - 完全多用户模式 ,是标准的运行级。
# 4 - 没有用到 ,一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本 电脑的电池用尽时,可以切换到这个模式来
# 5 - X11   ,进到X Window系统了。  
# 6 - 重新启动 ,运行init 6机器就会重启

init一般在系统启动时自动运行,也可以由root用户调用。它的作用是切换系统的运行状态。它的命令格式是:init NUM〈回车〉,其中NUM表示1到6的任一数字。

6种模式中有两种是系统内定的:

0:停止系统运行。init 0〈回车〉相当于 halt〈回车〉。

6:重启系统。init 6〈回车〉相当于 reboot〈回车〉。

在终端中,我们可以键入
init <运行级别>
来切换运行级别来达到某种目的,如输入 init 0 使系统关机,输入 init 6 使系统重启。

如果你使用的是文本登录屏幕,你是在运行级别 3 中操作。如果你使用的是图形化登录屏幕,你是在运行级别 5 中操作。

默认的运行级别可以通过修改 /etc/inittab 文件来改变,该文件在接近开头的地方有一行与下面相似:

id:5:initdefault:


把这一行中的数字改成你想要的运行级别。所做改变在系统重新引导之后才会生效。

立即改变运行级别,使用命令 telinit,其后跟随运行级别数字。你必须是根用户才能使用这项命令


不同的运行级有不同的用处,也应该根据自己的不同情形来设置。例如,如果丢失了root口令,那么可以让机器启动进入单用户状态来设置。在启动后的lilo提示符下输入:

  init=/bin/sh rw

  就可以使机器进入运行级1 ,并把root文件系统挂为读写。它会跳过所有系统认证,让你使用passwd程序来改变root口令,然后启动到一个新的运行级



阅读(835) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~