MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > linux / 正文

闲聊一下Linux系统的7个运行级别

2024-11-26 16:48 huorong linux 6 ℃ 0 评论

一、Linux的运行级别(runlevel)

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 
运行级别2:多用户状态(没有NFS) 
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 
运行级别4:系统未使用,保留 
运行级别5:X11控制台,登陆后进入图形GUI模式 
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

二、运行级别的原理

  1. 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)
  2. 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
  3. rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
  4. 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件
  5. 对于以K开头的文件,系统将终止对应的服务
    对于以S开头的文件,系统将启动对应的服务
  6. 查看运行级别用:runlevel
  7. 进入其它运行级别用:(sudo) init N
  8. 另外init0为关机,init 6为重启系统

另外,当使用runlevel查看运行级别时,结果会显示前一次的运行级别和现在的运行级别,如果前次的运行级别为N,那么说明前次没有运行级别(可能刚刚power on)

三、在运行模式中加入启动服务

要在某个运行模式中加入一个启动服务
1、首先要新建该服务启动脚本
2、然后把它放置于/etc/rc.d/init.d或者/etc/init.d/(根据你的linux版本有所不同)目录下
3、要将该启动脚本与运行模式关联起来,你需要这个运行模式的目录下建立一个与/etc/rc.d/init.d/下启动脚本的symbolic link。

文件名的前缀通常为SXX,XX为数字,这个数字是用来控制该运行模式下服务的启动顺序。
脚本的执行顺序是按照数字大小升序执行,就是数字越小越先执行。

下面就是一个在运行模式中加入启动服务具体的例子:

$ cp myservice /etc/rc.d/init.d/
$ ln -s /etc/rc.d/init.d/myservice /etc/rc3.d/S99myservice

这样,下次以runlevel 3启动时,myservice就会自动启动。

四、注意

多数的桌面的linux系统缺省的runlevel是5,用户登陆时是图形界面,而多数的服务器版本的linux系统缺省的runlevel是3,用户登陆时是字符界面,runlevel 1和2除了调试之外很少使用,runlevel s和S并不是直接给用户使用,而是用来为Single user mode作准备。

Tags:linux 启动级别

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言