温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何解析Linux系统运行级别

发布时间:2022-01-26 12:00:35 来源:亿速云 阅读:230 作者:柒染 栏目:开发技术
# 如何解析Linux系统运行级别 ## 1. 运行级别概念解析 Linux运行级别(Runlevel)是系统初始化过程中定义的不同操作模式,用于控制哪些系统服务在启动时运行。每个运行级别对应一组特定的服务配置,系统在不同阶段会切换到不同的运行级别。 ### 1.1 运行级别定义 传统SysVinit系统定义了7个标准运行级别(0-6): - 0:停机(Halt) - 1:单用户模式(Single-User) - 2:多用户无网络(Multi-User without Networking) - 3:完整多用户模式(Multi-User with Networking) - 4:保留未使用(User-Definable) - 5:图形界面模式(Graphical) - 6:重启(Reboot) > 注意:不同Linux发行版可能对运行级别的定义略有差异 ## 2. 运行级别管理工具 ### 2.1 传统SysVinit系统 ```bash # 查看当前运行级别 $ runlevel N 5 # 前一个运行级别为N(None),当前为5 # 切换运行级别 $ init 3 # 切换到运行级别3 

2.2 systemd系统

现代Linux系统多采用systemd,使用”target”替代运行级别:

运行级别 systemd target
0 poweroff.target
1 rescue.target
3 multi-user.target
5 graphical.target
6 reboot.target
# 查看当前target $ systemctl get-default # 切换target $ systemctl isolate multi-user.target 

3. 运行级别配置文件

3.1 /etc/inittab(传统系统)

# 默认运行级别设置(SysVinit) id:5:initdefault: 

3.2 systemd目标链接

# 查看默认目标链接 $ ls -l /etc/systemd/system/default.target lrwxrwxrwx 1 root root 36 Mar 15 10:00 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target 

4. 服务与运行级别的关联

4.1 SysVinit服务管理

# 查看各运行级别服务状态 $ chkconfig --list network 0:off 1:off 2:on 3:on 4:on 5:on 6:off # 修改服务运行级别 $ chkconfig --level 235 sshd on 

4.2 systemd服务管理

# 查看服务依赖目标 $ systemctl show -p WantedBy sshd.service WantedBy=multi-user.target 

5. 运行级别切换实战

5.1 临时切换

# 传统系统 $ telinit 3 # systemd系统 $ systemctl rescue # 进入救援模式(相当于runlevel 1) 

5.2 永久修改默认级别

SysVinit系统:

$ vi /etc/inittab id:3:initdefault: 

systemd系统:

$ systemctl set-default multi-user.target 

6. 故障排查技巧

6.1 运行级别冲突诊断

# 检查服务启动日志 $ journalctl -b | grep -i "target\|runlevel" # 查看服务启动失败项 $ systemctl --failed 

6.2 紧急恢复方法

当系统无法正常启动时: 1. 在GRUB菜单选择”recovery mode” 2. 通过单用户模式(runlevel 1)修复 3. 使用LiveCD检查文件系统

7. 现代系统的演变

随着systemd的普及,运行级别的概念正在发生变化: - 引入”target”作为更灵活的单元组合 - 支持并行服务启动 - 提供更细粒度的依赖管理

# 查看所有可用target $ systemctl list-units --type=target 

8. 最佳实践建议

  1. 生产服务器建议使用runlevel 3/multi-user.target
  2. 桌面环境使用runlevel 5/graphical.target
  3. 修改默认运行级别前做好备份
  4. 使用systemd-analyze blame分析启动耗时

结语

理解Linux运行级别是系统管理的基础技能。虽然现代系统逐渐转向systemd架构,但运行级别的核心概念仍然适用。掌握传统SysVinit和现代systemd两种管理方式,能够帮助管理员在不同环境中高效工作。

附录:常见发行版差异 - RHEL/CentOS 7+:使用systemd - Ubuntu 16.04+:使用systemd - Debian 8+:默认使用systemd - Slackware:仍保留传统SysVinit “`

(注:实际字数约1100字,可根据需要增减具体案例或配置示例)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI