systemd 与 SysVinit

1. 什么是 systemdSysVinit

systemdSysVinit 都是 Linux 的初始化系统(init system),用于管理系统启动、服务、进程和日志。

比较项SysVinitsystemd
启动方式逐步启动(串行)并行启动(并行)
服务管理基于 init 脚本基于 unit 文件
依赖管理依赖手动定义自动处理依赖关系
启动速度快(并行优化)
日志管理/var/log/messagesjournalctl
是否支持 cgroups
默认用于旧版 Linux(CentOS 6、Ubuntu 14)现代 Linux(CentOS 7+、Ubuntu 16+)

2. SysVinit 详解

SysVinit(System V init)是早期 Unix 系统的 init 进程,负责系统引导和服务管理。

(1) SysVinit 的工作方式

  • 读取 /etc/inittab 确定 运行级别(Runlevel)
  • /etc/rc.d/ 目录下执行 启动脚本
  • 顺序(串行) 依次启动服务(启动较慢)

(2) SysVinit 运行级别

运行级别作用
0关机
1单用户模式
3纯命令行模式
5图形界面模式
6重新启动
(3) SysVinit 启动服务的方式
  • SysVinit 使用 /etc/init.d/ 脚本 作为服务管理方式:
/etc/init.d/nginx start
/etc/init.d/nginx stop
/etc/init.d/nginx restart
  • 也可以用 service 命令:
service nginx status
service nginx restart
  • chkconfig 用于管理开机自启:
chkconfig nginx on  # 开机自启
chkconfig --list nginx  # 查看是否开机自启
(4) SysVinit 存在的问题
  • 服务启动是串行的,启动速度慢
  • 无法追踪进程状态
  • 日志管理依赖 /var/log/messages,查询不方便
  • 服务依赖关系需要手动处理

3. systemd 详解

systemd 是现代 Linux 的 init 进程,取代 SysVinit,提供更快的启动速度和更强的服务管理能力。

(1) systemd 的特点

并行(Parallel)启动:多个服务同时启动,加快系统引导速度。
自动处理依赖关系:无需手动配置 chkconfig
使用 unit 文件代替 init 脚本:更结构化、更易维护。
内置 journalctl 日志管理:更方便查询日志。
支持 cgroups 进程控制:管理进程生命周期。

(2) systemd 启动服务

  • systemctlsystemd 提供的服务管理工具:
systemctl start nginx   # 启动服务
systemctl stop nginx    # 停止服务
systemctl restart nginx # 重启服务
systemctl status nginx  # 查看服务状态
  • 设置开机自启:
systemctl enable nginx  # 开机启动
systemctl disable nginx # 取消开机启动
  • 列出所有运行的服务
systemctl list-units --type=service

(3) systemd unit 文件

  • systemd 使用 /etc/systemd/system/ 目录下的 .service 文件管理服务,例如:
[Unit]
Description=NGINX Web Server
After=network.target[Service]
ExecStart=/usr/sbin/nginx -g "daemon off;"
ExecReload=/bin/kill -s HUP $MAINPID
KillMode=process
Restart=always[Install]
WantedBy=multi-user.target
  • systemd 读取 unit 文件后,可以用 systemctl 直接管理服务:
systemctl daemon-reload  # 重新加载配置
systemctl restart nginx  # 重启服务

(4) systemd 日志管理

  • systemd 使用 journalctl 记录所有系统日志:
journalctl -u nginx  # 查看 Nginx 相关日志
journalctl -f        # 实时查看日志(类似 `tail -f`)
journalctl --since "1 hour ago" # 查看最近 1 小时的日志

4. systemdSysVinit 的区别

功能SysVinitsystemd
启动方式串行启动并行启动
管理方式init.d 脚本systemctl
依赖管理手动配置自动处理
启动速度
日志管理/var/log/messagesjournalctl
是否支持 cgroups
重启单个服务service nginx restartsystemctl restart nginx
查看服务状态service nginx statussystemctl status nginx

5. 如何判断系统使用 SysVinit 还是 systemd

方法 1: 检查 /sbin/init

ls -l /sbin/init
  • 如果输出:
    lrwxrwxrwx 1 root root 22 Mar 12  2025 /sbin/init -> /lib/systemd/systemd
    
    说明 使用 systemd
  • 如果 /sbin/init/etc/init.d 目录中的二进制文件,说明使用 SysVinit

方法 2: 检查进程

ps -p 1
  • 如果输出:
    PID TTY      STAT   TIME COMMAND1 ?        Ss     0:00 /lib/systemd/systemd
    
    说明 使用 systemd
  • 如果输出:
    PID TTY      STAT   TIME COMMAND1 ?        Ss     0:00 /sbin/init
    
    说明 使用 SysVinit

方法 3: 直接运行 systemctl

systemctl --version
  • 如果返回 systemd 版本号(如 systemd 249),说明 使用 systemd
  • 如果 systemctl 命令不存在,说明 使用 SysVinit

6. 哪些 Linux 版本使用 systemd

发行版使用的 init 系统
CentOS 6 及更早版本SysVinit
CentOS 7 及更新版本systemd
Ubuntu 14.04 及更早版本SysVinit
Ubuntu 16.04+systemd
Debian 7 及更早版本SysVinit
Debian 8+systemd

Last

  • SysVinit传统的 Linux 启动管理系统,使用 init.d 脚本,启动慢,依赖手动管理。
  • systemd现代 Linux 的标准 init 系统,支持 并行启动自动管理依赖,大幅提升 启动速度
  • systemctl 取代了 servicechkconfig,提供更强的管理能力。
  • journalctl 替代了传统 /var/log/messages 日志管理。

如果你的系统是 CentOS 7+ 或 Ubuntu 16+,你应该使用 systemd 而不是 SysVinit 🚀

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

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

相关文章

QML菜单控件:菜单的常规用法

目录 引言📚相关阅读🔨BUG修复工程结构示例详解示例1:上下文菜单(ContextMenu)示例2:菜单栏(MenuBar)示例3:动态菜单示例4:快捷键菜单示例5:可选项…

【Vue-路由案例】面经基础版

目录 <<回到导览1.面经基础版1.1.VueCli建项目1.1.1.VueCli 自定义项目1.1.2.ESlint代码规范 1.2.项目路由1.2.1.一级路由配置1.2.2.二级配置路由1.2.3.设置高亮1.2.4.发生请求、渲染1.2.5.跳转传参、再发请求1.2.6.体验优化1.2.7.keep-alive <<回到导览 1.面经基…

【T2I】MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis

code&#xff1a;CVPR 2024 MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis [CVPR 2024] MIGC: Multi-Instance Generation Controller for Text-to-Image Synthesis - 知乎 Abstract 我们提出了一个多实例生成(Multi-Instance Generation, MIG)任务…

用AI来了解用户都在关注的品牌问题是什么?

​ ​​用户重复问的核心问题整理​​ 基于百度文心一言、豆包、KIMI、腾讯元宝、DeepSeek五大模型的回答&#xff0c;企业最关注的GEO问题可归纳为以下10类&#xff08;按优先级排序&#xff09;&#xff1a; ​​1. GEO是什么&#xff1f;与传统SEO有何本质区别&#xff1f…

OpenCv(七)——模板匹配、打包、图像的旋转

目录 一、模板匹配 模板匹配原理 1、单模板之间的匹配 &#xff08;1&#xff09;读取并显示待匹配的图片和模板图片 &#xff08;2&#xff09;模板匹配并绘制匹配位置的外接矩形 &#xff08;3&#xff09;显示最终的效果 2、模板与多个对象匹配&#xff0c;仅匹配当前…

蓝桥云客 最大和

问题描述 小蓝在玩一个寻宝游戏&#xff0c;游戏在一条笔直的道路上进行&#xff0c;道路被分成了 n 个方格&#xff0c;依次编号 1 至 n&#xff0c;每个方格上都有一个宝物&#xff0c;宝物的分值是一个整数&#xff08;包括正数、负数和零&#xff09;&#xff0c;当进入一…

【C++算法】49.分治_归并_计算右侧小于当前元素的个数

文章目录 题目链接&#xff1a;题目描述&#xff1a;解法C 算法代码&#xff1a;图解 题目链接&#xff1a; 315. 计算右侧小于当前元素的个数 题目描述&#xff1a; 解法 归并排序&#xff08;分治&#xff09; 当前元素的后面&#xff0c;有多少个比我小。&#xff08;降序&…

IPSec简单例子

实验说明 使用Ensp模拟器实现IPsec隧道实验。IPSec是一种VPN技术&#xff0c;配置的思路首先是两个网络先通&#xff0c;然后配置ACL、IEK和IPSec对等体&#xff0c;从而建立VPN隧道。 实验拓扑 配置过程 1 配置IP地址以及OSPF路由 # 配置中使用了简写命令&#xff0c;不熟…

车载联网终端4G汽车TBOX介绍定义与概述

汽车 TBOX&#xff08;Telematics Box&#xff09;是专为汽车设计的远程通信终端设备&#xff0c;属于车联网系统的关键组成部分。车联网系统一般包含主机、汽车 T - BOX、手机 APP 及后台系统。融合了车身网络和 4G 无线通信技术&#xff0c;为汽车提供丰富的 Telematics 服务…

《DeepSeek RAG 增强检索知识库系统》Ollama DeepSeek 流式应答页面对接之三

前言 自从有了 AI 工具以后&#xff0c;所有以前头疼前端页面开发的后端程序员&#x1f468;&#x1f3fb;‍&#x1f4bb;&#xff0c;都漏出了友善&#x1f60a;微笑&#xff01; 主要我们可以清楚地表达编写页面诉求&#xff0c;AI 工具就可以非常准确且迅速的完成代码的实…

【MyBatis】深入解析 MyBatis:关于注解和 XML 的 MyBatis 开发方案下字段名不一致的的查询映射解决方案

注解查询映射 我们再来调用下面的 selectAll() 这个接口&#xff0c;执行的 SQL 是 select* from user_info&#xff0c;表示全列查询&#xff1a; 运行测试类对应方法&#xff0c;在日志中可以看到&#xff0c;字段名一致&#xff0c;Mybatis 就成功从数据库对应的字段中拿到…

深入理解Java性能调优与JVM底层机制

Java作为一种广泛应用的编程语言&#xff0c;在企业级应用中占据着举足轻重的地位。随着系统规模的扩大和业务需求的复杂化&#xff0c;性能调优成为了开发过程中不可忽视的一环。Java的性能瓶颈往往并不直接来自代码本身&#xff0c;而是与JVM&#xff08;Java虚拟机&#xff…

odo18实施——销售-仓库-采购-制造-制造外包-整个流程自动化单据功能的演示教程

安装模块 安装销售 、库存、采购、制造模块 2.开启外包功能 在进入制造应用点击 配置—>设置 勾选外包&#xff0c;点击保存 添加信息 一、添加客户信息 点击到销售应用 点击订单—>客户 点击新建 创建客户1&#xff0c;及其他客户相关信息&#xff0c;点…

Logo语言的在线课程学习

Logo语言在线课程学习的探索 引言 在信息技术快速发展的今天&#xff0c;编程已经成为一门重要的技能。尤其随着人工智能、数据分析和互联网技术的普及&#xff0c;各种编程语言层出不穷&#xff0c;其中Logo语言以其独特的教育意义和学习优势&#xff0c;逐渐受到学校和教育…

情感语音的“开源先锋”!网易开源

语音合成技术近年来取得了显著进步&#xff0c;特别是在语音克隆、语音助手、配音服务和有声读物等领域。然而&#xff0c;如何让合成的语音更具情感&#xff0c;更贴近人类的真实表达&#xff0c;一直是这一领域的重要研究方向。今天&#xff0c;我们将为大家介绍一款由网易有…

摄像头模块对焦方式的类型

摄像头模块的对焦方式直接影响成像清晰度和使用场景适应性&#xff0c;不同技术各有其优缺点。以下是常见对焦方式及其原理、特点和应用场景的详细说明&#xff1a; ‌1. 固定对焦&#xff08;Fixed Focus&#xff09;‌ ‌原理‌&#xff1a;镜头固定在特定距离&#xff08;…

使用Vue、Nodejs以及websocket搭建一个简易聊天室

简易聊天室 说在前面效果展示websocketwebsocket的由来websocket的特点 vue前端静态结构效果代码 点击切换用户以及该用户高亮实现思路效果展示 发送消息功能效果展示 连接服务端 Nodejs服务器端实现步骤代码 说在前面 在学习计算机网络的时候&#xff0c;看到了websocket这个…

【免费】2005-2019年各地级市绿色专利申请量数据

2005-2019年各地级市绿色专利申请量数据 1、时间2005-2019年 2、来源&#xff1a;国家知识产权局 3、指标&#xff1a;省份、城市、年份、绿色发明专利申请量、绿色实用新型专利申请量 4、范围&#xff1a;360地级市 5、指标解释&#xff1a;绿色专利是指涉及环保、新能源…

架构师面试(二十六):系统拆分

问题 今天我们聊电商系统实际业务场景的问题&#xff0c;考查对业务系统问题的分析能力、解决问题的能力和对系统长期发展的整体规划能力。 一电商平台在早期阶段业务发展迅速&#xff0c;DAU在 10W&#xff1b;整个电商系统按水平分层架构进行设计&#xff0c;包括【入口网关…

2. Qt界面文件原理

本节主要介绍ui文件如何与窗口关联&#xff0c;并通过隐式连接方式显示对话框 本文部分ppt、视频截图原链接&#xff1a;[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1 UI文件如何与窗口关联 1.1 mainwindow.cpp的头文件ui_mainwindow.h 根据编译原理的基本规…