Linux `init 5` 相关命令的完整使用指南


Linux `init 5` 相关命令的完整使用指南—目录

  • 一、`init` 系统简介
  • 二、`init 5` 的含义与作用
  • 三、不同 Init 系统下的 `init 5` 行为
    • 1. SysVinit(如 CentOS 6、Debian 7)
    • 2. systemd(如 CentOS 7+、Ubuntu 16.04+)
    • 3. Upstart(如 Ubuntu 14.04)
  • 四、相关命令详解与对比
  • 五、典型使用场景
  • 六、操作步骤与示例
    • 1. 使用 `init 5` 进入图形界面模式(SysVinit)
    • 2. 使用 `systemctl`(systemd)
    • 3. 从图形界面模式恢复默认运行级别
  • 七、高级用法与自定义配置
    • 1. 自定义图形界面启动服务
    • 2. 修改默认启动目标(systemd)
    • 3. 创建自定义靶点(systemd)
  • 八、常见问题与解决方案
    • 1. 执行 `init 5` 无法进入图形界面
    • 2. 图形界面启动后卡顿
    • 3. 无法从图形界面返回命令行
  • 九、安全注意事项
  • 十、总结


一、init 系统简介

init(Initialization)是 Linux 系统启动的第一个进程(PID 1),负责管理系统服务的启动、停止和进程调度。不同 Linux 发行版使用不同的 init 实现:
• SysVinit(传统):基于运行级别(Runlevel)管理。
• systemd(现代主流):基于单元(Unit)和服务(Service)管理。
• Upstart(旧版 Ubuntu):事件驱动的初始化系统。

init 5 是 运行级别 5 的命令,通常用于进入图形界面模式(GUI),启动桌面环境(如 GNOME、KDE),适用于桌面或图形化服务器管理。


二、init 5 的含义与作用

• 运行级别 5:
• 在 SysVinit 中表示图形界面模式。
• 在 systemd 中对应 graphical.target
• 核心作用:
• 启动图形界面(如 Xorg、Wayland)及桌面环境。
• 加载图形化服务(如显示管理器 GDM、LightDM)。
• 允许用户通过图形界面登录和操作系统。


三、不同 Init 系统下的 init 5 行为

1. SysVinit(如 CentOS 6、Debian 7)

• 命令:

sudo init 5

• 效果:
• 启动图形界面服务(如 GDM、LightDM)。
• 加载桌面环境(如 GNOME、KDE)。

2. systemd(如 CentOS 7+、Ubuntu 16.04+)

• 兼容性:systemd 保留了 init 命令的软链接,但实际行为由 systemd 处理:

ls -l /sbin/init
# 输出类似:lrwxrwxrwx 1 root root 16 Apr  1 10:00 /sbin/init -> /lib/systemd/systemd

• 执行效果:
init 5 会被重定向到 systemctl isolate graphical.target,启动图形界面。

3. Upstart(如 Ubuntu 14.04)

• 不支持 init 5:需改用 telinit 5systemctl 命令。


四、相关命令详解与对比

命令适用系统效果备注
init 5SysVinit进入图形界面模式不推荐在 systemd 中使用
systemctl isolate graphical.targetsystemd 系统进入图形界面模式推荐在 systemd 中使用
telinit 5Upstart/SysVinit切换到运行级别 5需 root 权限

五、典型使用场景

  1. 桌面环境启动:
    • 用户登录后自动进入图形界面(如 GNOME、KDE)。
  2. 图形化配置工具:
    • 使用图形界面工具(如 GNOME Control Center)管理系统设置。
  3. 远程桌面访问:
    • 通过 VNC 或 RDP 协议远程连接 Linux 图形界面。

六、操作步骤与示例

1. 使用 init 5 进入图形界面模式(SysVinit)

# 切换到运行级别 5
sudo init 5# 系统会启动图形界面服务(如 GDM),并自动登录用户

2. 使用 systemctl(systemd)

# 进入图形界面模式
sudo systemctl isolate graphical.target# 查看当前活动目标
systemctl get-default

3. 从图形界面模式恢复默认运行级别

# 返回多用户模式(运行级别 3)
sudo systemctl isolate multi-user.target# 或使用 SysVinit 命令
sudo init 3

七、高级用法与自定义配置

1. 自定义图形界面启动服务

• 添加服务到运行级别 5(SysVinit):
编辑 /etc/inittab 文件(若存在):

sudo nano /etc/inittab

添加以下内容(示例):

# 启动自定义图形服务
l5:5:wait:/etc/init.d/custom-gui start

创建脚本 /etc/init.d/custom-gui,定义启动逻辑。

2. 修改默认启动目标(systemd)

• 永久设置为图形界面模式:

sudo systemctl set-default graphical.target

3. 创建自定义靶点(systemd)

• 示例:创建名为 custom-gui.target 的靶点:

sudo nano /etc/systemd/system/custom-gui.target

内容:

[Unit]
Description=Custom GUI Target
Requires=graphical.target
After=graphical.target

• 启用并切换:

sudo systemctl enable custom-gui.target
sudo systemctl isolate custom-gui.target

八、常见问题与解决方案

1. 执行 init 5 无法进入图形界面

• 原因:
• 显示管理器(如 GDM)未安装或配置错误。
• 显卡驱动问题导致 Xorg 无法启动。
• 解决:
• 安装显示管理器:

 sudo apt install gdm3  # Debian/Ubuntusudo yum install gdm   # CentOS

• 检查显卡驱动:

 lspci -k | grep -A 3 "VGA"

2. 图形界面启动后卡顿

• 优化建议:
• 禁用不必要的启动服务:

 systemctl disable <service-name>

• 使用轻量级桌面环境(如 XFCE、LXDE)。

3. 无法从图形界面返回命令行

• 快捷键切换:
• 按 Ctrl + Alt + F3 切换到 TTY3(多用户模式)。
• 登录后执行:

 sudo systemctl isolate multi-user.target

九、安全注意事项

  1. 谨慎操作运行级别:避免在生产环境中误操作导致服务中断。
  2. 备份配置文件:修改 /etc/inittab 或 systemd 配置前,务必备份原文件。
  3. 权限管理:限制普通用户执行 init 命令,仅允许 root 操作。

十、总结

init 5 的核心作用:进入图形界面模式,适用于桌面环境或图形化管理。
• 推荐命令:
• SysVinit:sudo init 5
• systemd:sudo systemctl isolate graphical.target
• 最佳实践:
• 优先使用 systemd 命令,确保兼容性和稳定性。
• 定期检查显示管理器和显卡驱动状态,避免启动失败。


通过本指南,您可以全面掌握 Linux 系统中 init 5 的使用场景、兼容性问题及安全操作方法,适用于桌面环境配置、远程访问等场景。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/77856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ常见面试题回答重点

文章目录 什么是消息队列&#xff1f;为什么需要消息队列消息队列的模型消息队列常见名词如何保证消息不丢失&#xff1f;&#xff08;可靠性&#xff09;如何保证消息不重复/业务幂等性如何保证消息有序性如何处理消息堆积消息队列设计为推送还是拉取 / 推拉模式优点无法路由的…

欣佰特携数十款机器人相关前沿产品,亮相第二届人形机器人和具身智能行业盛会

2025年4月15日至16日&#xff0c;备受关注的第二届中国人形机器人与具身智能产业大会已在北京成功举行。作为国内前沿科技及产品服务领域的重要参与者&#xff0c;欣佰特科技携众多前沿产品精彩亮相&#xff0c;全方位展示了其在人形机器人与具身智能领域的创新产品。 在本次大…

Docker安装 (centos)

1.安装依赖包&#xff1a; sudo yum install -y yum-utils device-mapper-persistent-data lvm2 2.删除已有的 Docker 仓库文件&#xff08;如果有&#xff09;&#xff1a; sudo rm -f /etc/yum.repos.d/docker-ce.repo 3.添加阿里云的 Docker 仓库&#xff1a; sudo yum…

Vue接口平台学习十——接口用例页面2

效果图及简单说明 左边选择用例&#xff0c;右侧就显示该用例的详细信息。 使用el-collapse折叠组件&#xff0c;将请求到的用例详情数据展示到页面中。 所有数据内容&#xff0c;绑定到caseData中 // 页面绑定的用例编辑数据 const caseData reactive({title: "",…

服务器数据迁移指南

服务器数据迁移是将数据从一台服务器转移到另一台服务器的过程&#xff0c;可能是为了硬件升级、云迁移、数据中心搬迁或服务整合。 以下是数据迁移的关键步骤和注意事项&#xff1a; 迁移前准备 制定迁移计划 确定迁移范围(全量/增量) 评估数据量和网络带宽 制定时间表和回…

25.解决中医知识问答删除历史对话功能后端处理请求时抛出异常

ChatTest.vue:176 DELETE http://localhost:8080/api/chat/conversations/20 500 (Internal Server Error) deleteConversation ChatTest.vue:176 onClick ChatTest.vue:22 ChatTest.vue:185 删除失败 AxiosError {message: Request failed with status code 500, name: Axio…

记录seatunnel排查重复数据的案例分析

文章目录 背景分析检查现象检查B集群是否有异常&#xff0c;导致重复消费的分析同步任务 修复问题发现flink job 一直报异常修复问题 背景 使用seatunnel 同步数据从A 集群kafka 同步到B集群kafka,现象是发现两边数据不一致&#xff0c;每天10w级别会多几十条数据 分析 检查…

VSCode远程图形化GDB

VSCode远程图形化GDB 摘要一、安装VSCode1、使用.exe安装包安装VSCode2、VSCode 插件安装3、VSCode建立远程连接 二、core dump找bug1、开启core文件2、永久生效的方法3、编写测试程序4、运行结果5、查看core段错误位置6、在程序中开启core dump并二者core文件大小 三、gdbserv…

Android 中实现 GIF 图片动画

在 Android 中&#xff0c;ImageView 从 Android 9.0&#xff08;API 级别 28&#xff09; 开始原生支持 GIF 动画&#xff0c;通过 AnimatedImageDrawable 类实现。在之前的版本中&#xff0c;ImageView 并不支持直接播放 GIF 动画&#xff0c;只能显示 GIF 的第一帧。 一、 …

【c语言】指针进阶

目录 1.字符指针 2.指针数组 3.数组指针 3.1 数组指针的定义 3.2 数组指针的使用 4.数组参数&#xff0c;指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5.函数指针 6.函数指针数组 6.1函数指针数组的定义 6.2 函数指针数组…

极狐GitLab 项目 API 的速率限制如何设置?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;关于中文参考文档和资料有&#xff1a; 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 项目 API 的速率限制 (BASIC SELF) 引入于 15.10 版本&#xff0c;功能标志为rate_limit_for_unauthenticated_projects_api_…

【xlog日志文件】怎么删除里面包含某些字符串的行(使用excel)

将log日志,复制到单独一行 B列&#xff08;可能一行很长&#xff0c;所以将整合后的放在A列&#xff09; 使用公式可以筛选出 包含某些字符串的行 为true&#xff0c;将这些行直接删除 IF(COUNT(FIND("MediaMuxterThreadRussia",B2,1))>0,"包含",&quo…

STM32提高篇: CAN通讯

STM32提高篇: CAN通讯 一.CAN通讯介绍1.物理层2.协议层二.STM32CAN外设1.CAN控制器的3种工作模式2.CAN控制器的3种测试模式3.功能框图三.CAN的寄存器介绍1.环回静默模式测试2.双击互发测试四.CAN的HAL代码解读一.CAN通讯介绍 CAN(Controller Area Network 控制器局域网,简称…

Java写数据结构:栈

1.概念&#xff1a; 一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xff1a;栈的插…

单页面应用的特点,什么是路由,VueRouter的下载,安装和使用,路由的封装抽离,声明式导航的介绍和使用

文章目录 一.什么是单页面应用?二.什么是路由?生活中的路由和Vue中的路由 三.VueRouter(重点)0.引出1.介绍2.下载与使用(5个基本步骤2个核心步骤)2.1 五个基本步骤2.2 两个核心步骤 四.路由的封装抽离五.声明式导航1.导航链接特点一:能跳转特点二:能高亮 2.两个高亮类名2.1.区…

【C++】模板2.0

最近学习了一些模板的知识&#xff0c;速写本博客作为学习笔记&#xff0c;若有兴趣&#xff0c;欢迎垂阅读&#xff01; 1.非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名…

目标检测中的损失函数(二) | BIoU RIoU α-IoU

BIoU来自发表在2018年CVPR上的文章&#xff1a;《Improving Object Localization With Fitness NMS and Bounded IoU Loss》 论文针对现有目标检测方法只关注“足够好”的定位&#xff0c;而非“最优”的框&#xff0c;提出了一种考虑定位质量的NMS策略和BIoU loss。 这里不赘…

如何在 Amazon EC2 上部署 Java(Spring Boot 版)

让我们学习如何将 Java Spring Boot Web 服务器部署到 Amazon EC2。每月只需 3 美元。 使用 Azure&#xff0c;您可能不知道要花费多少钱。 Spring Boot 项目示例 在本教程中&#xff0c;我们将重点介绍如何将 Java Spring Boot 服务器部署到 Amazon EC2&#xff0c;因此我们不…

Git常用命令分类汇总

Git常用命令分类汇总 一、基础操作 初始化仓库git init添加文件到暂存区git add file_name # 添加单个文件 git add . # 添加所有修改提交更改git commit -m "提交描述"查看仓库状态git status二、分支管理 创建/切换分支git branch branch_name …

mysql——基础知识

关键字大小写不敏感 查看表结构中的 desc describe 描述 降序中的 desc descend 1. 数据库的操作 1. 创建数据库 create database 数据库名;为防止创建的数据库重复 CREATE DATABASE IF NOT EXISTS 数据库名;手动设置数据库采用的字符集 character set 字符集名;chars…