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

news2025/4/21 4:51:58

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

  • 一、`init` 系统简介
  • 二、`init 4` 的含义与作用
  • 三、不同 Init 系统下的 `init 4` 行为
    • 1. SysVinit(如 CentOS 6、Debian 7)
    • 2. systemd(如 CentOS 7+、Ubuntu 16.04+)
    • 3. Upstart(如 Ubuntu 14.04)
  • 四、相关命令详解与对比
  • 五、典型使用场景
  • 六、操作步骤与示例
    • 1. 在 SysVinit 中配置并切换到运行级别 4
    • 2. 在 systemd 中创建自定义靶点
  • 七、常见问题与解决方案
    • 1. 执行 `init 4` 报错 “Runlevel 4 is not defined”
    • 2. 服务未按预期启动
    • 3. 无法退出运行级别 4
  • 八、安全注意事项
  • 九、总结


一、init 系统简介

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

init 4 是 运行级别 4 的命令,通常用于进入自定义或未定义的系统状态。在大多数 Linux 发行版中,运行级别 4 并未被标准化定义,可能需根据实际需求手动配置。


二、init 4 的含义与作用

• 运行级别 4:
• 在 SysVinit 中默认未定义,通常需要手动配置。
• 在 systemd 中无直接对应靶点,需通过自定义单元实现。
• 核心作用:
• 允许用户自定义系统状态(如专用服务器模式、调试环境)。
• 可能用于保留特定服务或禁用默认服务(需手动配置)。


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

1. SysVinit(如 CentOS 6、Debian 7)

• 默认行为:
• 运行级别 4 未预定义,执行 sudo init 4 可能触发错误或进入未配置状态。
• 配置方法:

  1. 编辑 /etc/inittab 文件(若存在):
    sudo nano /etc/inittab
    
  2. 添加自定义运行级别配置(示例):
    # 添加运行级别 4 的描述和默认操作
    l4:4:wait:/etc/init.d/custom-script start
    
  3. 创建对应脚本 /etc/init.d/custom-script,定义启动/停止逻辑。

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

• 兼容性:
• systemd 不支持直接使用 init 4,需通过 systemctl 切换自定义靶点。
• 实现方法:

  1. 创建自定义靶点文件(如 /etc/systemd/system/custom.target):
    [Unit]
    Description=Custom Runlevel 4
    Requires=multi-user.target
    After=multi-user.target
    
  2. 启用自定义靶点:
    sudo systemctl enable custom.target
    
  3. 切换至运行级别 4:
    sudo systemctl isolate custom.target
    

3. Upstart(如 Ubuntu 14.04)

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


四、相关命令详解与对比

命令适用系统效果备注
init 4SysVinit尝试切换到运行级别 4需提前配置,否则报错
systemctl isolate custom.targetsystemd 系统进入自定义靶点(模拟运行级别 4)需手动创建靶点配置
telinit 4Upstart/SysVinit切换到运行级别 4可能触发未定义行为

五、典型使用场景

  1. 自定义服务器模式:
    • 禁用默认服务(如图形界面、数据库),仅保留特定后台进程。
  2. 调试环境:
    • 启动调试工具或日志服务,隔离生产环境影响。
  3. 特殊硬件适配:
    • 针对嵌入式设备或专用硬件配置独立运行状态。

六、操作步骤与示例

1. 在 SysVinit 中配置并切换到运行级别 4

# 编辑 /etc/inittab(若存在)
sudo nano /etc/inittab

# 添加以下内容(示例)
l4:4:wait:/etc/init.d/custom-server start

# 创建自定义脚本
sudo nano /etc/init.d/custom-server

脚本内容(示例):

#!/bin/bash
# Start custom services for runlevel 4
service nginx start
service mysql start

赋予执行权限:

sudo chmod +x /etc/init.d/custom-server

切换运行级别:

sudo init 4

2. 在 systemd 中创建自定义靶点

# 创建自定义靶点文件
sudo nano /etc/systemd/system/custom.target

内容:

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

[Install]
WantedBy=multi-user.target

启用并切换:

sudo systemctl enable custom.target
sudo systemctl isolate custom.target

七、常见问题与解决方案

1. 执行 init 4 报错 “Runlevel 4 is not defined”

• 原因:系统未定义运行级别 4。
• 解决:
• SysVinit:按上述步骤配置 /etc/inittab 和脚本。
• systemd:创建自定义靶点并启用。

2. 服务未按预期启动

• 诊断:检查自定义脚本或靶点配置是否正确。
• 修复:

journalctl -u custom-server.service  # 查看 systemd 服务日志
tail -f /var/log/custom-server.log   # 查看自定义脚本日志

3. 无法退出运行级别 4

• 原因:未配置返回默认运行级别的命令。
• 解决:
• 在脚本中添加退出逻辑:
bash # 在 /etc/init.d/custom-server 中添加 case "$1" in stop) service nginx stop service mysql stop ;; esac
• 切换回默认运行级别:
bash sudo init 3 # 多用户模式(SysVinit) sudo systemctl isolate multi-user.target # systemd


八、安全注意事项

  1. 谨慎配置运行级别:避免误删关键服务导致系统无法恢复。
  2. 备份配置文件:修改 /etc/inittab 或 systemd 配置前,务必备份原文件。
  3. 限制 root 权限:非必要情况下避免使用 sudo 执行高风险命令。

九、总结

init 4 的核心作用:提供高度自定义的系统运行状态,适用于特殊需求场景。
• 推荐方法:
• SysVinit:通过 /etc/inittab 和脚本定义运行级别 4。
• systemd:创建自定义靶点并关联服务。
• 最佳实践:
• 优先使用标准运行级别(如 3 或 5)。
• 生产环境中谨慎修改运行级别配置,避免服务中断。


通过本指南,您可以了解如何在 Linux 系统中配置和使用 init 4,适用于特殊场景的系统管理。建议在操作前充分测试,并确保关键服务已备份。


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

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

相关文章

【物联网】基于LORA组网的远程环境监测系统设计

基于LORA组网的远程环境监测系统设计 演示视频: 简介: 1.本系统有一个主机,两个从机。 2.一主多从的LORA组网通信,主机和两个从机都配备了STM32F103单片机与 LoRa 模块,主机作为中心设备及WIFI网关,负责接收和发送数据到远程物联网平台和手机APP,两个从机则负责采集数…

第3章 垃圾收集器与内存分配策略《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

第3章 垃圾收集器与内存分配策略 3.2 对象已死 Java世界中的所有对象实例,垃圾收集器进行回收前就是确定对象哪些是活着的,哪些已经死去。 3.2.1 引用计数算法 常见的回答是:给对象中添加一个引用计数器,有地方引用&#xff0…

【树莓派Pico FreeRTOS】-中断服务与二值信号量

中断服务与二值信号量 RP2040 由 Raspberry Pi 设计,具有双核 Arm Cortex-M0+ 处理器和 264KB 内部 RAM,并支持高达 16MB 的片外闪存。 广泛的灵活 I/O 选项包括 I2C、SPI 和独特的可编程 I/O (PIO)。 FreeRTOS 由 Real Time Engineers Ltd. 独家拥有、开发和维护。FreeRTO…

在已有的vue项目中使用vuex

介绍 Vuex 是一个用于 Vue.js 应用程序的状态管理模式 库。它充当应用程序中所有组件的集中存储,其规则确保状态只能以可预测的方式进行更改。 专门在vue中实现集中式状态(数据)管理的一个插件对vue应用中多个组件的共享状态进行集中式的管…

宇树机器狗go2—slam建图(1)点云格式

0.前言 上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道…

致远OA——自定义开发rest接口

文章目录 :apple: 业务流程 🍎 业务流程 代码案例: https://pan.quark.cn/s/57fa808c823f 官方文档: https://open.seeyoncloud.com/seeyonapi/781/https://open.seeyoncloud.com/v5devCTP/39/783.html 登录系统 —— 后台管理 —— 切换系…

No package docker-ce available问题的解决

安装docker时提示 rootk8s-node3 ~]# yum install -y docker-ce docker-ce-cli containerd.io Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com No packag…

群晖威联通飞牛等nas如何把宿主机硬盘挂接到可道云docker容器中

可道云系统是用户常用的一款面向个人用户的轻量级私有云存储工具,以高效管理和安全存储为核心,打造便捷的数字化办公体验。但是用户希望把原有其他磁盘中文件挂接到这个新系统中有很大的难度,主要是对linux文件系统理解有很大的误区,认为目录结构是固定的…

Uniapp:列表选择提示框

目录 一、出现场景二、效果展示三、具体使用 一、出现场景 在项目的开发过程中,有这样一种场景,就是点击按钮走后续的逻辑之前还需要选择前提条件,就一个条件的情况下如果使用弹出框就显示比较多余,列表选择提示框刚好能够满足我…

【python】django sqlite版本过低怎么办

方法一:下载最新版本 复制上面的内容的链接 在服务器上进行操作 wget https://sqlite.org/2025/sqlite-autoconf-3490100.tar.gz tar -zxvf sqlite-autoconf-3490100.tar.gz cd sqlite-autoconf-3490100 ./configure --prefix/usr/local make && make in…

山东大学软件学院创新项目实训开发日志(18)之对话自动生成标题设为用户第一次对话发的文字

本次功能的实现主要集中在后端,前端代码不用改变: 前端界面效果展示:

【机器学习】PCA-奇异值分解-上采样与下采样-傅里叶变换

1. PCA 主成分分析 主成分分析(PCA)是一种常用的数据降维方法。 它通过找到数据中方差最大的方向(主成分),将原始高维数据映射到较低维空间,同时尽可能保留原始信息。 数学实现上,通常通过协方…

【day8】调用AI接口,生成自动化测试用例

1、项目结构建议 project/ ├── api_docs/ # 存放接口文档 │ └── XX系统.swagger.json ├── ai_generator/ # AI测试用例生成模块 │ └── test_case_generator.py ├── tests/ # 生成的测试用例 │ └── test_user_api.py ├── conftest.py # pytest配置 ├─…

【Tauri2】026——Tauri+Webassembly

前言 不多废话 直言的说,笔者看到这篇文章大佬的文章 【04】Tauri 入门篇 - 集成 WebAssembly - 知乎https://zhuanlan.zhihu.com/p/533025312尝试集成一下WebAssembly,直接开始 正文 准备工作 新建一个项目 安装 vite的rsw插件和rsw pnpm instal…

Notepad++中将文档格式从Windows(CR LF)转换为Unix(LF)

在Windows中用记事本写了一个.sh的Linux运行脚本,是无法直接在Linux中执行,需要首先把文本编码格式转换为Unix的,特别是换行符这些,转换步骤如下: 1、打开文档 在Notepad中打开需要转换的文件。 2、进入文档格式转换…

Linux常见工具如yum、vim、gcc、gdb的基本使用,以及编译过程和动静态链接的区别

目录 一、工具的本质 二、一些常用的工具 1.yum 2.vim 1)vim的三种基本模式: 2)vim的基本操作 ①命令模式下的基本操作: ②插入模式: ③底行模式: 3)vim的配置:让他变得更好用 3.gcc…

RBAC的使用

1、简述RBAC的作用及工作流程 Rbac基于角色访问控制,用于管理用户对集群资源的访问权限,通过定义角色和绑定规则,将用户与权限进行关联,作用:权限精细化管理,操作便捷与统一管理,动态调整权限。…

MySQL+Redis实战教程:从Docker安装部署到自动化备份与数据恢复20250418

MySQLRedis实战教程:从Docker安装部署到自动化备份与数据恢复 一、前言 在企业应用中,对MySQL和Redis运维的要求越来越高: 不能仅是启动就算部署运行稳定、隔离、访问控制、备份恢复、安全可靠,才是 企业级的基本功能 本文将手…

AI驱动商业变革:零售行业的智能化跃迁

引言:AI技术迈入黄金时代 2024年成为生成式AI(Gen AI)全面落地的关键年。据麦肯锡《技术趋势展望》报告,生成式AI相关投资同比增长​7倍​​,其经济价值预计达​​2.6-4.4万亿美元​​[1]。在零售领域,该技…

AI调试工具有哪些?

一、深度学习框架专用调试工具 TensorBoard • 功能:实时监控训练指标(损失值、准确率)、可视化神经网络结构、分析参数分布和梯度信息 • 适用框架:TensorFlow、PyTorch(通过插件) • 特点:支持…