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.pswp.cn/web/74920.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74920.shtml
英文地址,請注明出處:http://en.pswp.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 根據編譯原理的基本規…