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


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

  • 一、`init` 系统简介
  • 二、运行级别(Runlevel)详解
  • 三、常用 `init` 命令及使用方法
    • 1. 切换运行级别
    • 2. 查看当前运行级别
    • 3. 服务管理
    • 4. 紧急模式(Rescue Mode)
  • 四、不同 Init 系统的兼容性
    • 1. SysVinit 与 systemd 的命令对照
    • 2. Upstart 命令(旧版 Ubuntu)
  • 五、典型使用场景
    • 1. 系统维护与修复
    • 2. 服务器环境配置
    • 3. 紧急故障排查
  • 六、高级用法与自定义配置
    • 1. 自定义运行级别服务
    • 2. 修改默认靶点(systemd)
    • 3. 创建自定义靶点
  • 七、常见问题与解决方案
    • 1. 无法切换运行级别
    • 2. 服务无法启动
    • 3. 误操作导致系统无法启动
  • 八、安全注意事项
  • 九、总结


一、init 系统简介

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

init 命令通过切换运行级别(Runlevel)控制系统状态,支持单用户模式、多用户模式、图形界面模式等场景。


二、运行级别(Runlevel)详解

运行级别定义了系统的不同状态,常见级别如下:

运行级别名称适用场景systemd 对应靶点
0关机(Shutdown)安全关闭系统poweroff.target
1单用户模式(Rescue)系统修复、密码重置rescue.target
2多用户模式(无图形)服务器维护、网络配置multi-user.target
3多用户模式(带网络)命令行环境下的多任务操作multi-user.target
4未定义(保留)自定义用途用户自定义靶点
5图形界面模式(GUI)桌面环境启动graphical.target
6重启(Reboot)重新启动系统reboot.target

三、常用 init 命令及使用方法

1. 切换运行级别

• 通用语法:

sudo init <运行级别>

• 示例:
• 关机:sudo init 0
• 进入单用户模式:sudo init 1
• 切换到多用户无图形界面:sudo init 2
• 重启系统:sudo init 6

2. 查看当前运行级别

• SysVinit:

runlevel  # 输出格式:N 当前运行级别 S 上次运行级别

• systemd:

systemctl get-default    # 查看默认靶点
systemctl list-units --type=target  # 列出所有靶点

3. 服务管理

• 启动/停止服务(SysVinit):

sudo service <服务名> start/stop/restart

• 启用/禁用开机自启(systemd):

sudo systemctl enable/disable <服务名>

• 查看服务状态:

systemctl status <服务名>  # systemd
service <服务名> status    # SysVinit

4. 紧急模式(Rescue Mode)

• 进入救援模式(systemd):

sudo systemctl rescue

• 修复文件系统:
在救援模式下,挂载根分区为读写模式:

mount -o remount,rw /

四、不同 Init 系统的兼容性

1. SysVinit 与 systemd 的命令对照

功能SysVinit 命令systemd 命令
切换运行级别init <级别>systemctl isolate <靶点>
启动服务service <服务> startsystemctl start <服务>
查看服务状态service <服务> statussystemctl status <服务>
设置开机自启chkconfig <服务> onsystemctl enable <服务>

2. Upstart 命令(旧版 Ubuntu)

• 启动服务:

sudo start <服务名>

• 停止服务:

sudo stop <服务名>

五、典型使用场景

1. 系统维护与修复

• 单用户模式重置密码:

  1. 重启系统,在 GRUB 菜单按 e 编辑内核参数,添加 init=/bin/bash
  2. 进入单用户模式后执行:
    mount -o remount,rw /
    passwd root
    

2. 服务器环境配置

• 禁用图形界面:

sudo systemctl set-default multi-user.target  # systemd
sudo chkconfig gdm off                      # SysVinit

3. 紧急故障排查

• 挂载文件系统为只读:

mount -o remount,ro /

• 检查磁盘错误:

fsck /dev/sda1

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

1. 自定义运行级别服务

• 添加服务到运行级别(SysVinit):

  1. 创建符号链接至对应运行级别目录:
    ln -s /etc/init.d/nginx /etc/rc3.d/S20nginx
    
  2. 启用服务:
    chkconfig --level 3 nginx on
    

2. 修改默认靶点(systemd)

• 永久修改默认运行级别:

sudo systemctl set-default graphical.target  # 设置为图形界面
sudo systemctl set-default rescue.target     # 设置为救援模式

3. 创建自定义靶点

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

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

内容:

[Unit]
Description=Custom Target
Requires=multi-user.target
After=multi-user.target

• 启用自定义靶点:

sudo systemctl enable custom.target

七、常见问题与解决方案

1. 无法切换运行级别

• 原因:权限不足或服务依赖未解除。
• 解决:

sudo chmod +s /sbin/init  # 赋予执行权限(谨慎操作)

2. 服务无法启动

• 诊断步骤:

  1. 查看日志:
    journalctl -u <服务名>  # systemd
    tail -f /var/log/<服务名>.log
    
  2. 检查依赖关系:
    systemctl list-dependencies <服务名>
    

3. 误操作导致系统无法启动

• 恢复方法:

  1. 进入救援模式(systemctl rescue)。
  2. 挂载根分区并修复配置:
    mount /dev/sda1 /mnt
    chroot /mnt
    

八、安全注意事项

  1. 谨慎操作运行级别:避免在生产环境中随意切换级别导致服务中断。
  2. 备份配置文件:修改 /etc/inittab 或 systemd 配置前,务必备份原文件。
  3. 限制 root 权限:非必要情况下避免使用 sudo 执行高风险命令。

九、总结

init 的核心作用:管理系统运行状态和服务生命周期。
• 推荐命令:
• 切换运行级别:sudo init <级别>systemctl isolate <靶点>
• 服务管理:systemctl start/stop <服务>
• 紧急修复:systemctl rescue
• 最佳实践:优先使用 systemd 命令,定期备份配置,避免直接操作底层运行级别。


通过本指南,您可以全面掌握 Linux 系统中 init 相关命令的使用场景、兼容性问题及安全操作方法,适用于服务器管理、故障排查等多种场景。


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

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

相关文章

UNet 改进(12):UNet with ECA (Efficient Channel Attention) 网络

详解 下面将详细解析这个实现了ECA注意力机制的UNet网络代码。 1. 代码概述 代码实现了一个带有Efficient Channel Attention (ECA)模块的UNet网络架构。 UNet是一种常用于图像分割任务的编码器-解码器结构网络,而ECA模块则是一种轻量级的通道注意力机制,可以增强网络对重…

视频监控EasyCVR视频汇聚平台接入海康监控摄像头如何配置http监听功能?

一、方案概述 本方案主要通过EasyCVR视频管理平台&#xff0c;实现报警信息的高效传输与实时监控。海康监控设备能通过HTTP协议将报警信息发送至指定的目的IP或域名&#xff0c;而EasyCVR平台则可以接收并处理这些报警信息&#xff0c;同时提供丰富的监控与管理功能&#xff0…

人工智能与网络安全:AI如何预防、检测和应对网络攻击?

引言&#xff1a;网络安全新战场&#xff0c;AI成关键角色 在数字化浪潮不断推进的今天&#xff0c;网络安全问题已经成为每一家企业、每一个组织无法回避的“隐形战场”。无论是电商平台、金融机构&#xff0c;还是政府机关、制造企业&#xff0c;都可能面临数据泄露、勒索病毒…

3D人脸扫描技术如何让真人“进入“虚拟,虚拟数字人反向“激活“现实?

随着虚拟人技术的飞速发展&#xff0c;超写实数字人已经成为数字娱乐、广告营销和虚拟互动领域的核心趋势。无论是企业家、知名主持人还是明星&#xff0c;数字分身正在以高度还原的形象替代真人参与各类活动&#xff0c;甚至成为品牌代言、直播互动的新宠。 3D人脸扫描&#…

递归函数详解

定义 递归是指一个函数在其定义中直接或间接地调用自身的方法。通过这种方式&#xff0c;函数可以将一个复杂的问题分解为规模更小的、与原问题相似的子问题&#xff0c;然后通过不断地解决这些子问题来最终解决整个问题。 组成部分 递归主体 这是函数中递归调用自身的部分…

ASP.NET Core Web API 配置系统集成

文章目录 前言一、配置源与默认设置二、使用步骤1&#xff09;创建项目并添加配置2&#xff09;配置文件3&#xff09;强类型配置类4&#xff09;配置Program.cs5&#xff09;控制器中使用配置6&#xff09;配置优先级测试7&#xff09;动态重载配置测试8&#xff09;运行结果示…

在生信分析中,从生物学数据库中下载的序列存放在哪里?要不要建立一个小型数据库,或者存放在Gitee上?

李升伟 整理 在Galaxy平台中使用时&#xff0c;从NCBI等生物学数据库下载的DNA序列的存储位置和管理方式需要根据具体的工作流程和需求进行调整。以下是详细的分步说明和建议&#xff1a; 一、Galaxy中DNA序列的默认存储位置 在Galaxy的“历史记录”&#xff08;History&…

SDK游戏盾如何接入?复杂吗?

接入SDK游戏盾&#xff08;通常指游戏安全防护类SDK&#xff0c;如防DDoS攻击、防作弊、防外挂等功能&#xff09;的流程和复杂度取决于具体的服务商&#xff08;如腾讯云、上海云盾等&#xff09;以及游戏类型和技术架构。以下是一般性的接入步骤、复杂度评估及注意事项&#…

通过类似数据蒸馏或主动学习采样的方法,更加高效地学习良品数据分布

好的&#xff0c;我们先聚焦第一个突破点&#xff1a; 通过类似数据蒸馏或主动学习采样的方法&#xff0c;更加高效地学习良品数据分布。 这里我提供一个完整的代码示例&#xff1a; ✅ Masked图像重建 残差热力图 这属于自监督蒸馏方法的一个变体&#xff1a; 使用一个 预…

【课题推荐】多速率自适应卡尔曼滤波(MRAKF)用于目标跟踪

多速率自适应卡尔曼滤波(Multi-Rate Adaptive Kalman Filter, MRAKF)是一种针对多传感器异步数据融合的滤波算法,适用于传感器采样率不同、噪声特性时变的目标跟踪场景。本文给出一个多速率自适应卡尔曼滤波框架,以无人机跟踪场景为例,融合IMU和GPS数据 文章目录 背景多速…

软考 系统架构设计师系列知识点之杂项集萃(49)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之杂项集萃&#xff08;48&#xff09; 第76题 某文件管理系统在磁盘上建立了位视图&#xff08;bitmap&#xff09;&#xff0c;记录磁盘的使用情况。若磁盘上物理块的编号依次为&#xff1a;0、1、2、……&#xff1b…

HTTP:七.HTTP缓存

HTTP缓存介绍 HTTP缓存是一种通过存储网络资源的副本,以减少对原始服务器请求的技术。当客户端再次请求相同资源时,如果该资源未过期,服务器可以直接从本地缓存中提供响应,而无需再次从原始服务器获取。这大大减少了网络延迟,提高了加载速度,并减轻了服务器的负载。HTTP…

WPF 图标原地旋转

如何使元素原地旋转 - WPF .NET Framework | Microsoft Learn <ButtonRenderTransformOrigin"0.5,0.5"HorizontalAlignment"Left">Hello,World<Button.RenderTransform><RotateTransform x:Name"MyAnimatedTransform" Angle"…

NO.91十六届蓝桥杯备战|图论基础-图的存储和遍历|邻接矩阵|vector|链式前向星(C++)

图的基本概念 图的定义 图G是由顶点集V和边集E组成&#xff0c;记为G (V, E)&#xff0c;其中V(G)表⽰图G中顶点的有限⾮空集&#xff1b;E(G)表⽰图G中顶点之间的关系&#xff08;边&#xff09;集合。若 V { v 1 , v 2 , … , v n } V \left\{ v_{1},v_{2},\dots,v_{n} …

【项目日记(一)】-仿mudou库one thread oneloop式并发服务器实现

1、模型框架 客户端处理思想&#xff1a;事件驱动模式 事件驱动处理模式&#xff1a;谁触发了我就去处理谁。 &#xff08; 如何知道触发了&#xff09;技术支撑点&#xff1a;I/O的多路复用 &#xff08;多路转接技术&#xff09; 1、单Reactor单线程&#xff1a;在单个线程…

Go语言实现OAuth 2.0认证服务器

文章目录 1. 项目概述1.1 OAuth2 流程 2. OAuth 2.0 Storage接口解析2.1 基础方法2.2 客户端管理相关方法2.3 授权码相关方法2.4 访问令牌相关方法2.5 刷新令牌相关方法 2.6 方法调用时序2.7 关键注意点3. MySQL存储实现原理3.1 数据库设计3.2 核心实现 4. OAuth 2.0授权码流程…

结合 Python 与 MySQL 构建你的 GenBI Agent_基于 MCP Server

写在前面 商业智能(BI)正在经历一场由大型语言模型(LLM)驱动的深刻变革。传统的 BI 工具通常需要用户学习复杂的界面或查询语言,而生成式商业智能 (Generative BI, GenBI) 则旨在让用户通过自然语言与数据交互,提出问题,并获得由 AI 生成的数据洞察、可视化建议甚至完整…

Linux中常用命令

目录 1. linux目录结构 2. linux基本命令操作 2.1 目录操作命令 2.2 文件操作命令 2.3 查看登录用户命名 2.4 文件内容查看命令 2.5 系统管理类命令 3. bash通配符 4. 压缩与解压缩命令 4.1 压缩和解压缩 4.2 测试网络连通性命令 ping 4.3 vi编辑器 4.4 管道操作(…

C++ 与 MySQL 数据库优化实战:破解性能瓶颈,提升应用效率

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

tcp特点+TCP的状态转换图+time_wait详解

tcp特点TCP的状态转换图time wait详解 目录 一、tcp特点解释 1.1 面向连接 1.1.1 连接建立——三次握手 1.1.2 连接释放——四次挥手 1.2 可靠的 1.2.1 应答确认 1.2.2 超时重传 1.2.3 乱序重排 1.2.4 去重 1.2.5 滑动窗口进行流量控制 1.3 流失服务&#xff08;字节…