linux的运行级别,指的是linux所工作的模式。linux有0-6这7种运行级别,分别代表着linux可以工作的7种模式,下面分别介绍这7个模式所的意义
0 关机,当运行级别为0的时候,表示关机状态
1 单用户模式,这个工作模式下的linux主机只允许root用户且必须在本地(注意是本地,不能网络远程登 录)登录,其他用户不能登录。这个模式主要用于管理员维护,类似于windows的安全模式。这个模式在忘记root密码很有用,可以以这个模式进入系统,修改重置root密码。
2 多用户模式,可以允许任何用户本地和远程登录,但是不支持nfs
3 多用户模式,和模式2的主要区别是,模式3可以支持nfs
4 保留,无具体实际用途
5 图形化模式,以模式5运行的系统,将会支持图形化的桌面(如果安装过)
6 重启模式,当linux操作系统进入这个模式后,会重新启动,你也可以将linux的默认运行级别改为6,这个时候你的主机会进入不断的重启状态。
上面描诉了linux的7种运行级别,不熟悉的人可能会问。我一个系统开机运行后到底是运行在哪一个级别了?针对这个问题,可以很直接的得出结论,肯定不是级别0,级别6,因为如果工作在级别0,那你的系统直接就关机了,级别6你的系统也会重启。
runlevel命令:查看系统当前运行级别,下图表示系统现在运行在级别3
#runlevel N 3
系统启动时候的默认运行级别,记录在文件,红色部分为系统默认的启动级别,可以修改id的值修改默认启动模式。
#cat /etc/inittab # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # :
linux主机划分为7个级别,我们可以分别定义这七个级别可以运行/停止什么服务或者软件(级别0,6除外,因为这两个级别直接就关闭或者重启系统了,相关的软件或者服务就没有运行的环境了),下面就详细描诉如何定义不同的级别运行不同的服务和软件。
在linux主机上面,有一个目录,
/etc/rc.d/init.d/
这个目录里面有很多linux风格的服务管理脚本,这些脚本管理着系统上面的相关服务。我们平时管理服务的使用[/etc/init.d/XXX status|stop|restart|..... ]等命令都是调用的这个目录下面的相关的脚本,因为/etc/init.d这个目录其实是一个链接文件,指向了
/etc/rc.d/init.d/
#ls /etc/rc.d/init.d/ abrt-ccpp ali-system-wide-profiling_agent cgconfig DragoonAgent http_status iptables libvirt-guests #ll init.d lrwxrwxrwx 1 root root 11 Mar 21 2014 init.d -> rc.d/init.d
linux运行在某一个级别下的时候,是怎么知道要运行哪一些服务了?其实要想在某一个模式下运行或者停止某一个服务,只需要在对应的/etc/rc.d/rc(x).d/目录下创建一个这个服务的特殊名字的软链接。其中x为对应的级别,至于这个软链接是如何特殊,下面再仔细讲。linux有7个运行模式,那么在/etc./rc.d下面就应该有7个对应目录,用于存放对应的需要管理的服务或者软件。
#ls
init.d rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d
反过来思考,以/etc/rc.d/rc3.d/为例,这个目录下面就应该是级别3这个模式下的所有默认管理的软件,打开这个目录
#ll /etc/rc.d/rc3.d/ total 0 lrwxrwxrwx 1 root root 17 Mar 21 2014 K00ipmievd -> ../init.d/ipmievd lrwxrwxrwx 1 root root 24 Mar 21 2014 K01libvirt-guests -> ../init.d/libvirt-guests lrwxrwxrwx 1 root root 16 Mar 21 2014 K01smartd -> ../init.d/smartd lrwxrwxrwx 1 root root 22 Mar 21 2014 K02avahi-daemon -> ../init.d/avahi-daemon lrwxrwxrwx 1 root root 14 Mar 21 2014 S55sshd -> ../init.d/sshd lrwxrwxrwx 1 root root 14 Jan 28 2015 S58ntpd -> ../init.d/ntpd
我们发现某个运行级别是否运行某个服务或者软件,确实需要讲软件的启动管理脚本链接到这个模式对用的路径下来。下面我们说明系统时怎么样管理软件是否启动,还是以上图模式3为例子说明,上图表示当系统以模式3运行的时候,需要管理的相关软件服务情况。我们观察一下对应的服务管理脚本软链后的文件名称:
K10saslauthd
S85nginx
k表示这个运行模式下,杀死这个服务,
s表示这个运行模式下,运行这个服务
k和s后面的两个数字表示系统启动的时候的运行顺序,顺序小的需要先执行。
在系统启动的时候,系统首先会判断要工作的模式(在/etc/inittab里 去读取运行模式,然后会去对应的rc.d里去获取需要启动或者停止的服务)
如何切换linux的运行级别?
直接运行init x x为对应的级别。