加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux操作系统中,如何确定运行的不同级别是什么?

发布时间:2023-08-29 13:36:07 所属栏目:Linux 来源:转载
导读:   这篇文章主要讲解了“什么是运行级别,linux运行级别定义在哪”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么
  这篇文章主要讲解了“什么是运行级别,linux运行级别定义在哪”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“什么是运行级别,linux运行级别定义在哪”吧!
 
  linux运行级别定义在“/etc/inittab”配置文件中。“/etc/inittab”是linux初始化文件系统时,init初始化程序用到的配置文件;该配置文件只能用来设置系统的默认运行级别,也就是系统开机后会进入那个运行级别。
 
  其实 Linux 是通过运行级别来确定系统启动时到底启动哪些服务的。
 
  Linux 默认有 7 个运行级别,具体如表 1 所示。
 
  表 1 运行级别
 
  运行级别 含 义
 
  0 关机
 
  1 单用户模式,可以想象为 Windows 的安全模式,主要用于系统修复
 
  2 不完全的命令行模式,不含 NFS 服务
 
  3 完全的命令行模式,就是标准字符界面
 
  4 系统保留
 
  5 图形模式
 
  6 重新启动
 
  linux运行级别定义在哪个文件中
 
  linux运行级别定义在“/etc/inittab”配置文件中。
 
  /etc/inittab 配置文件只能用来设置系统的默认运行级别,也就是系统开机后会进入那个运行级别
 
  /etc/inittab文件描述了哪些进程开始启动并正常运行。inittab为linux初始化文件系统时init初始化程序用到的配置文件。这个文件负责设置init初始化程序初始化脚本在哪里;每个运行级初始化时运行的命令;开机、关机、重启对应的命令;各运行级登陆时所运行的命令。
 
  inittab文件中的条目的格式如下:
 
  label:runlevels:action:process
 
  下面分别介绍各个字段
 
  1.label
 
  label 是一个独特的序列,确定了一个条目1 - 4字符,一些系统只支持2个字符的标签。对于getty或mingetty等其他login程序项,要求label与tty的编号相同,否则getty程序将不能正常工作。
 
  常用标签有:
 
  id 用来定义缺省的init运行的级别
 
  si 是系统初始化的进程
 
  ln 其中的n从1~6,指明该进程可以使用的runlevel的级别
 
  ud 是升级进程
 
  ca 指明当按下Ctrl+Alt+Del时运行的进程
 
  pf 指当UPS表明断电时运行的进程
 
  pr 是在系统真正关闭之前,UPS发出电源恢复的信号时需要运行的进程
 
  x 是将系统转入X终端时需要运行的进程
 
  2.runlevels
 
  runlevels 列出了运行级,指定应该采取的动作。可以指定多个runlevel级别,也可以不为runlevel字段指定特定的值。
 
  runlevel 0是让init关闭所有进程并终止系统。
 
  runlevel 1是用来将系统转到单用户模式,单用户模式只能有系统管理员进入,在该模式下处理那些在有登录用户的情况下不能进行更改的文件,改runlevel的编号1也可以用S代替。
 
  runlevel 2是允许系统进入多用户的模式,但并不支持文件共享,这种模式很少应用。
 
  runlevel 3是最常用的运行模式,主要用来提供真正的多用户模式,也是多数服务器的缺省模式。
 
  runlevel 4一般不被系统使用,用户可以设计自己的系统状态并将其应用到runlevel 4阶段,尽管很少使用,但使用该系统可以实现一些特定的登录请求。
 
  runlevel 5是将系统初始化为专用的X Window终端。对功能强大的Linux系统来说,这并不是好的选择,但用户如果需要这样,也可以通过在runlevel启动来实现该方案。
 
  runlevel 6是关闭所有运行的进程并重新启动系统。
 
  debian6以后默认没有运行/etc/inittab 文件 默认级别为2-5归为一类
 
  3.action
 
  action 字段定义了该进程应该运行在何种状态下,描述其后的process的运行方式的。:
 
  respawn 不管何时终止都重新启动进程
 
  wait 运行进程等待输入运行模式   这个过程将会开始一次运行级别时指定输入和init将等待其终止
 
  once 每一个runlevel级别运行一次  这个过程将执行一次当指定输入runlevel
 
  boot 在系统启动时运行,忽略runlevel
 
  bootwait 在系统启动时运行,init等待进程完成。忽略runlevel
 
  ctrlaltdel 当Ctrl+Alt+Del三个键同时按下时运行,把SIGINT信号发送给init。忽略 runlevel
 
  initdefault 不要执行这个进程,它用于设置默认runlevel
 
  kbrequest 当init从键盘中收到信号时运行。这里要求键盘组合符合KeyBoardSigra
 
  off 禁止进入,因此该进程不运行
 
  once 每一个runlevel级别运行一次
 
  ondemand 当系统指定特定的运行级别A、B、C时运行
 
  powerfail 当init收到SIGPWR信号时运行
 
  powerokwait 当收到SIGPWD信号且/etc/文件中的电源状态包含OK时运行
 
  powerwait 当收到SIGPWD信号,并且init等待进程结束时运行
 
  sysinit 在运行boot或bootwait进程之前运行
 
  4.process
 
  process字段包含init执行的进程,该进程采用的格式与在命令行下运行该进程的格式一样,因此process字段都以该进程的名字开头,紧跟着是运行时要传递给该进程的参数。
 
  代码如下:
 
  # /etc/inittab: init(8) configuration.
 
  # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
 
  代码如下:
 
  # The default runlevel.
 
  id:2:initdefault: #表示当前缺省运行级别为2
 
  代码如下:
 
  # Boot-time system configuration/initialization script.
 
  # This is run first except when booting in emergency (-b) mode.
 
  si::sysinit:/etc/init.d/rcS #系统初始化的进程
 
  代码如下:
 
  # What to do in single-user mode.
 
  ~~:S:wait:/sbin/sulogin
 
  代码如下:
 
  # /etc/init.d executes the S and K scripts upon change
 
  # of runlevel.
 
  #
 
  # Runlevel 0 is halt.
 
  # Runlevel 1 is single-user.
 
  # Runlevels 2-5 are multi-user.
 
  # Runlevel 6 is reboot.
 
  代码如下:
 
  l0:0:wait:/etc/init.d/rc 0
 
  l1:1:wait:/etc/init.d/rc 1
 
  l2:2:wait:/etc/init.d/rc 2
 
  l3:3:wait:/etc/init.d/rc 3
 
  l4:4:wait:/etc/init.d/rc 4
 
  l5:5:wait:/etc/init.d/rc 5
 
  l6:6:wait:/etc/init.d/rc 6
 
  # Normally not reached, but fallthrough in case of emergency.
 
  z6:6:respawn:/sbin/sulogin
 
  代码如下:
 
  # What to do when CTRL-ALT-DEL is pressed. #在启动过程中是否允许按CTRL-ALT-DELETE重启系统
 
  #ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
 
  代码如下:
 
  # Action on special keypress (ALT-UpArrow).
 
  #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
 
  代码如下:
 
  # What to do when the power fails/returns.
 
  pf::powerwait:/etc/init.d/powerfail start
 
  pn::powerfailnow:/etc/init.d/powerfail now
 
  po::powerokwait:/etc/init.d/powerfail stop
 
  代码如下:
 
  # /sbin/getty invocations for the runlevels.
 
  #
 
  # The "id" field MUST be the same as the last
 
  # characters of the device (after "tty").
 
  #
 
  # Format:
 
  # <id>:<runlevels>:<action>:<process>
 
  #
 
  # Note that on most Debian systems tty7 is used by the X Window System,
 
  # so if you want to add more getty's go ahead but skip tty7 if you run X.
 
  # getty进程来提供虚拟终端设备的服务
 
  1:2345:respawn:/sbin/getty 38400 tty1
 
  代码如下:
 
  #标签字段的值是1,1是设备tty1的数字后缀,tty1与相应的进程相关联,该getty进程可以启动的runlevel是2,3,4和5,当该进程终止时,init马上就重新启动它。启动进程的路径名是/sbin/getty,该进程是实现虚拟终端支持的最小版本的getty,为tty1提供启动虚拟设备的进程。
 
  2:23:respawn:/sbin/getty 38400 tty2
 
  #3:23:respawn:/sbin/getty 38400 tty3
 
  #4:23:respawn:/sbin/getty 38400 tty4
 
  #5:23:respawn:/sbin/getty 38400 tty5
 
  #6:23:respawn:/sbin/getty 38400 tty6
 
  # Example how to put a getty on a serial line (for a terminal)
 
  #
 
  #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
 
  T1:23:respawn:/sbin/getty -L ttyS1 115200 vt100
 
  # Example how to put a getty on a modem line.
 
  #
 
  #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
 
  示例
 
  # Begin /etc/inittab
 
  id:3:initdefault:
 
  si::sysinit:/etc/rc.d/init.d/rc sysinit
 
  l0:0:wait:/etc/rc.d/init.d/rc 0
 
  l1:S1:wait:/etc/rc.d/init.d/rc 1
 
  l2:2:wait:/etc/rc.d/init.d/rc 2
 
  l3:3:wait:/etc/rc.d/init.d/rc 3
 
  l4:4:wait:/etc/rc.d/init.d/rc 4
 
  l5:5:wait:/etc/rc.d/init.d/rc 5
 
  l6:6:wait:/etc/rc.d/init.d/rc 6
 
  ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
 
  su:S016:once:/sbin/sulogin
 
  1:2345:respawn:/sbin/agetty tty1 9600
 
  2:2345:respawn:/sbin/agetty tty2 9600
 
  3:2345:respawn:/sbin/agetty tty3 9600
 
  4:2345:respawn:/sbin/agetty tty4 9600
 
  5:2345:respawn:/sbin/agetty tty5 9600
 
  6:2345:respawn:/sbin/agetty tty6 9600
 
  # End /etc/inittab
 

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章