Linux运行级别

Linux系统有7个运行级别(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目录,并按照文件名顺序检索目录下的链接文件
     对于以K开头的文件,系统将终止对应的服务
     对于以S开头的文件,系统将启动对应的服务
5。查看运行级别用:runlevel
6。进入其它运行级别用:init N
7。另外init0为关机,init 6为重启系统
<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、付费专栏及课程。

余额充值