linux 运行级别

今天在别人中的博客中闲逛时,碰到运行级别这个概念,就查了查,摘抄别人的内容如下:

Linux运行级别从0~6,共7个。

0:关机。不能将系统缺省运行级别设置为0,否则无法启动。

1:单用户模式,只允许root用户对系统进行维护。

2:多用户模式,但不能使用NFS(相当于Windows下的网上邻居)

3:字符界面的多用户模式。

4:未定义。

5:图形界面的多用户模式。

6:重启。不能将系统缺省运行级别设置为0,否则会一直重启。

查看运行级别命令:

runlevel

先后显示系统上一次和当前运行级别。如果不存在上一次运行级别,则用N表示。

改变提供运行级别命令:

init [0123456]

关于运行等级

这个问题似乎和这篇文章的的主题无关,但是介于现在越来越多的linux新手遇到linux图形界面的问题,而且在中文输入法设置过程中也牵涉到这些问题,因此想顺便提一下。

现在的linux安装完成后,默认就运行在第5个系统运行级别。在SYSTEM V 风格的UNIX系统中,系统被分为不同的运行级别,这和BSD分支的UNIX有所不同,常用的为0~6七个级别:

0 关机

1 单用户

2 不带网络的多用户

3 带网络的多用户

4 保留,用户可以自给定义

5 图形界面的多用户

6 重起系统

由于现在的Linux系统安装完后就运行在第5个级别,即系统启动后直接进入图形界面,而不用在字符模式下登录后用startx或者xinit 来起动图形界面。这样看起来很方便。但是有什么坏处呢? 一旦你改变了某些设置,显示出问题的时候,系统不断在图形和字符间派徊,新手又不知道如何应对, 十分麻烦,而且对于学习研究Linux的人来说,这样不利于了解和学习Linux底层的一些东西。很早就用Linux的老用户都知道,过去的Linux如 redhat6.0,都是默认运行接别为3,即使后来的RedHat9.0也可以在安装时候选默认字符登录还是图形登录。但现在的FC系列和其他大多数版 本都不管三七二十一直接帮用户选择了直接图形界面登录。虽然对于大多数菜鸟来说,Linux确实越来越简单了,但是很多乐趣,那些新手也体验不到了。

也许你不相信,直接图形登录到系统确实会有很多问题,建议在系统安装完成后把系统的默认运行等级设置在第3级,在字符终端登录后,再手工输入startx 命令起动图形界面。可以用如下的方法修改:

用文本编辑器修改 /etc/inittab文件,把

代码:

id:5:initdefault:这一行,修改成

代码:

id:3:initdefault:保存后就reboot重起,系统就默认起动到字符界面。不同运行级别之间的差别的在于系统默认起动的服务的不同,如运行级别3默认不启动X图形界面服务,而运行级别5 却默认起动。本质上是没有区别的,更无所谓不同级别间功能强弱的问题。用户完全可自给定义不同级别的默认服务。在任何运行级别,用户都可用init 命令来切换到其他运行级别

<think>我们正在讨论Linux运行级别。根据引用内容,运行级别是操作系统当前正在运行的功能级别级别从0到6,每个级别有不同的功能,这些级别定义在/etc/inittab文件中(对于sysvinit系统)。在systemd系统中,运行级别的概念有所改变,但为了兼容性,仍然提供了类似的功能。 用户的问题:Linux运行级别介绍及如何查看和配置运行级别 回答结构: 1. 介绍运行级别的概念和作用 2. 详细说明各个运行级别的含义(0-6) 3. 如何查看当前运行级别(针对sysvinit和systemd分别说明) 4. 如何配置运行级别(包括临时切换和永久设置) 5. 注意事项(特别是关于systemd和sysvinit的区别) 注意:由于现代Linux发行版(如CentOS 7及以上)已经转向systemd,因此需要同时介绍两种方式,但重点放在systemd上,并说明兼容性方法。 根据引用[1]和[3],我们可以整理如下: 一、运行级别介绍 Linux系统有7个运行级别(0-6),每个级别对应特定的系统状态,例如: - 0:关机 - 1:单用户模式(救援模式,用于系统维护) - 2:多用户模式(不带网络) - 3:多用户模式(带网络,文本界面) - 4:未使用(用户可自定义) - 5:图形界面模式 - 6:重启 二、查看运行级别 1. 对于使用sysvinit(传统init)的系统: - 使用`runlevel`命令:显示前一个运行级别和当前运行级别(N表示没有前一个) - 使用`who -r`命令:显示当前运行级别 - 查看配置文件`/etc/inittab`:里面有一行类似`id:5:initdefault`,其中的数字5就是默认运行级别。 2. 对于使用systemd的系统(如CentOS 7及以上): - 运行级别被target替代,但为了兼容,运行级别与target有对应关系: runlevel0 -> poweroff.target runlevel1 -> rescue.target runlevel2 -> multi-user.target runlevel3 -> multi-user.target runlevel4 -> multi-user.target runlevel5 -> graphical.target runlevel6 -> reboot.target - 查看当前运行级别(实际上是查看当前的target): `systemctl get-default`:显示默认的target `systemctl list-units --type target`:查看当前活动的target - 也可以使用`runlevel`和`who -r`,但显示的是与当前target对应的运行级别(通过符号链接实现)。 三、配置运行级别(设置默认运行级别) 1. 对于sysvinit系统: 修改`/etc/inittab`文件中的`id:5:initdefault`一行,将数字改为想要的运行级别(如3)。 2. 对于systemd系统: 使用`systemctl set-default`命令,例如设置默认运行级别为多用户模式(对应运行级别3): `sudo systemctl set-default multi-user.target` 设置图形界面运行级别5): `sudo systemctl set-default graphical.target` 四、临时切换运行级别 1. 在sysvinit系统中,使用`init`或`telinit`命令,如: `init 3` # 切换到运行级别3 `telinit 5` # 切换到运行级别5 2. 在systemd系统中,可以使用`systemctl isolate`命令,如: `sudo systemctl isolate multi-user.target` # 相当于运行级别3 `sudo systemctl isolate graphical.target` # 相当于运行级别5 或者使用兼容命令: `sudo init 3` 注意:切换运行级别会改变系统状态,比如切换到运行级别0会关机,6会重启。 五、注意事项 1. 在systemd系统中,运行级别只是target的别名,实际上是通过创建符号链接(例如`/etc/systemd/system/default.target`指向具体的target)来实现的。 2. 不要随意修改运行级别,特别是将默认运行级别设置为0或6会导致系统无法正常启动。 3. 在systemd系统中,运行级别2、3、4都被映射到multi-user.target,因此它们没有区别。如果需要自定义,可以创建新的target。 六、示例 查看当前运行级别(systemd系统): ```bash $ systemctl get-default graphical.target ``` 将默认运行级别设置为多用户模式(无图形界面): ```bash $ sudo systemctl set-default multi-user.target ``` 临时切换到图形界面: ```bash $ sudo systemctl isolate graphical.target ``` 七、相关问题 根据内容生成相关问题。 现在开始组织回答:</think>### Linux 运行级别详解与配置指南 #### 一、运行级别基础概念 运行级别Linux 系统的工作状态标识,定义了系统启动时加载的服务和功能。主要分为 **7 个级别**(0-6),每个级别对应特定系统状态: | 运行级别 | 名称 | 功能说明 | |----------|------------------|--------------------------------------------------------------------------| | 0 | Halt | 关机状态 | | 1 | Single User Mode | **救援模式**:仅 root 可登录,用于系统修复[^3] | | 2 | Multi-User | 多用户模式(无网络) | | 3 | Multi-User+Net | **标准服务器模式**:完整多用户支持+网络服务(无图形界面)[^1] | | 4 | Custom | 用户自定义级别 | | 5 | Graphical | **桌面模式**:图形界面+网络服务(默认桌面环境)[^2] | | 6 | Reboot | 重启状态 | > **关键作用**:控制服务启动顺序、管理系统状态切换、故障恢复[^3] #### 二、查看运行级别 根据系统初始化工具不同,查看方式有所差异: ##### 1. SysVinit 系统(传统) ```bash # 查看当前级别 $ runlevel N 5 # 输出格式: [前一级别] [当前级别] # 替代方法 $ who -r run-level 5 2024-06-15 10:00 # 当前为级别5 ``` ##### 2. Systemd 系统(现代) ```bash # 查看当前目标(target) $ systemctl get-default graphical.target # 等价于运行级别5 # 查看级别映射关系 $ ls -l /usr/lib/systemd/system/runlevel*.target lrwxrwxrwx. 1 root root 15 Jan 10 graphical.target -> multi-user.target ``` #### 三、配置运行级别 **重要**:操作前备份配置文件! ##### 1. 永久配置(设置默认级别) ###### SysVinit 系统: ```bash sudo vi /etc/inittab # 修改此行数字 (示例设为级别3) id:3:initdefault ``` ###### Systemd 系统: ```bash # 设置多用户模式(级别3) sudo systemctl set-default multi-user.target # 设置图形模式(级别5) sudo systemctl set-default graphical.target ``` ##### 2. 临时切换级别 ```bash # SysVinit 系统 sudo init 3 # 切换到级别3 # Systemd 系统 sudo systemctl isolate multi-user.target ``` #### 四、运行级别目录结构 服务启动脚本按级别分类存放: ```bash /etc/rc.d/ ├── rc0.d # 级别0脚本 ├── rc1.d # 级别1脚本 ├── rc2.d ├── rc3.d # 级别3脚本(K*停用服务,S*启用服务) ├── rc4.d ├── rc5.d # 级别5脚本 └── rc6.d ``` 示例级别5的启动服务: ```bash ls /etc/rc5.d/S* # 列出所有级别5启动的服务 S01network S10sshd S12rsyslog ... ``` #### 五、注意事项 1. **危险级别**: - 避免将默认级别设为 0 或 6(会导致循环关机/重启) - 生产服务器建议使用级别 3(无图形界面资源开销) 2. **Systemd 兼容性**: ```bash # 查看传统运行级别对应的target $ systemctl list-units --type target runlevel5.target loaded active active Graphical Interface ``` 3. **服务管理**: ```bash # 禁止服务在级别3启动 sudo chkconfig --level 3 servicename off ``` > **最佳实践**:服务器环境使用级别3,桌面环境使用级别5,救援维护使用级别1[^2] #### 六、示例场景 **问题**:系统无法启动图形界面,需临时切换到命令行模式 **解决方案**: ```bash # 查看当前级别 $ systemctl get-default graphical.target # 临时切换到级别3 $ sudo systemctl isolate multi-user.target # 修复后恢复图形界面 $ startx # 或 sudo systemctl isolate graphical.target ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值