欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux中的systemd與SysVinit使用

 更新時間:2025年05月15日 09:44:01   作者:依舊風(fēng)輕  
這篇文章主要介紹了?Linux中的systemd與SysVinit使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1. 什么是 systemd 和 SysVinit?

systemdSysVinit 都是 Linux 的初始化系統(tǒng)(init system),用于管理系統(tǒng)啟動、服務(wù)、進程和日志。

比較項SysVinitsystemd
啟動方式逐步啟動(串行)并行啟動(并行)
服務(wù)管理基于 init 腳本基于 unit 文件
依賴管理依賴手動定義自動處理依賴關(guān)系
啟動速度快(并行優(yōu)化)
日志管理/var/log/messagesjournalctl
是否支持 cgroups
默認用于舊版 Linux(CentOS 6、Ubuntu 14)現(xiàn)代 Linux(CentOS 7+、Ubuntu 16+)

2. SysVinit 詳解

SysVinit(System V init)是早期 Unix 系統(tǒng)的 init 進程,負責(zé)系統(tǒng)引導(dǎo)和服務(wù)管理。

(1) SysVinit 的工作方式

  • 讀取 /etc/inittab 確定 運行級別(Runlevel)
  • /etc/rc.d/ 目錄下執(zhí)行 啟動腳本
  • 順序(串行) 依次啟動服務(wù)(啟動較慢)

(2) SysVinit 運行級別

運行級別作用
0關(guān)機
1單用戶模式
3純命令行模式
5圖形界面模式
6重新啟動

(3) SysVinit 啟動服務(wù)的方式

  • SysVinit 使用 /etc/init.d/ 腳本 作為服務(wù)管理方式:
/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 存在的問題

  • 服務(wù)啟動是串行的,啟動速度慢
  • 無法追蹤進程狀態(tài)
  • 日志管理依賴 /var/log/messages,查詢不方便
  • 服務(wù)依賴關(guān)系需要手動處理

3. systemd 詳解

systemd 是現(xiàn)代 Linux 的 init 進程,取代 SysVinit,提供更快的啟動速度和更強的服務(wù)管理能力。

(1) systemd 的特點

  • ? 并行(Parallel)啟動:多個服務(wù)同時啟動,加快系統(tǒng)引導(dǎo)速度。
  • ? 自動處理依賴關(guān)系:無需手動配置 chkconfig。
  • ? 使用 unit 文件代替 init 腳本:更結(jié)構(gòu)化、更易維護。
  • ? 內(nèi)置 journalctl 日志管理:更方便查詢?nèi)罩尽?/li>
  • ? 支持 cgroups 進程控制:管理進程生命周期。

(2) systemd 啟動服務(wù)

  • systemctlsystemd 提供的服務(wù)管理工具:
systemctl start nginx   # 啟動服務(wù)
systemctl stop nginx    # 停止服務(wù)
systemctl restart nginx # 重啟服務(wù)
systemctl status nginx  # 查看服務(wù)狀態(tài)
  • 設(shè)置開機自啟:
systemctl enable nginx  # 開機啟動
systemctl disable nginx # 取消開機啟動
  • 列出所有運行的服務(wù)
systemctl list-units --type=service

(3) systemd unit 文件

  • systemd 使用 /etc/systemd/system/ 目錄下的 .service 文件管理服務(wù),例如:
[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 直接管理服務(wù):
systemctl daemon-reload  # 重新加載配置
systemctl restart nginx  # 重啟服務(wù)

(4) systemd 日志管理

  • systemd 使用 journalctl 記錄所有系統(tǒng)日志:
journalctl -u nginx  # 查看 Nginx 相關(guān)日志
journalctl -f        # 實時查看日志(類似 `tail -f`)
journalctl --since "1 hour ago" # 查看最近 1 小時的日志

4. systemd 與 SysVinit 的區(qū)別

功能SysVinitsystemd
啟動方式串行啟動并行啟動
管理方式init.d 腳本systemctl
依賴管理手動配置自動處理
啟動速度
日志管理/var/log/messagesjournalctl
是否支持 cgroups
重啟單個服務(wù)service nginx restartsystemctl restart nginx
查看服務(wù)狀態(tài)service nginx statussystemctl status nginx

5. 如何判斷系統(tǒng)使用 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 COMMAND
  1 ?        Ss     0:00 /lib/systemd/systemd

說明 使用 systemd。

如果輸出:

PID TTY      STAT   TIME COMMAND
  1 ?        Ss     0:00 /sbin/init

說明 使用 SysVinit

方法 3: 直接運行 systemctl

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

6. 哪些 Linux 版本使用 systemd?

發(fā)行版使用的 init 系統(tǒng)
CentOS 6 及更早版本SysVinit
CentOS 7 及更新版本systemd
Ubuntu 14.04 及更早版本SysVinit
Ubuntu 16.04+systemd
Debian 7 及更早版本SysVinit
Debian 8+systemd

Last:

  • SysVinit傳統(tǒng)的 Linux 啟動管理系統(tǒng),使用 init.d 腳本,啟動慢,依賴手動管理。
  • systemd現(xiàn)代 Linux 的標(biāo)準(zhǔn) init 系統(tǒng),支持 并行啟動、自動管理依賴,大幅提升 啟動速度。
  • systemctl 取代了 servicechkconfig,提供更強的管理能力。
  • journalctl 替代了傳統(tǒng) /var/log/messages 日志管理。

如果你的系統(tǒng)是 CentOS 7+ 或 Ubuntu 16+,你應(yīng)該使用 systemd 而不是 SysVinit。 

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • apache虛擬主機配置一例

    apache虛擬主機配置一例

    apache虛擬主機配置一例,有需要的朋友可以參考下
    2013-02-02
  • 樹莓派4安裝Ubuntu 19.10的教程詳解

    樹莓派4安裝Ubuntu 19.10的教程詳解

    這篇文章主要介紹了樹莓派4安裝Ubuntu 19.10的教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • CentOS安裝Python2.7與Python2.6并存的方法

    CentOS安裝Python2.7與Python2.6并存的方法

    這篇文章主要介紹了CentOS安裝Python2.7與Python2.6并存的方法,非常具有實用價值,需要的朋友可以參考下
    2017-08-08
  • centos中yum命令刪除還原的補救方法介紹

    centos中yum命令刪除還原的補救方法介紹

    Yum: 即Yellowdog Update Modifier,是一種基于rpm的包管理工具,這篇文章主要給大家介紹了關(guān)于在centos中yum命令刪除還原的補救方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • linux系列之常用運維命令整理筆錄(小結(jié))

    linux系列之常用運維命令整理筆錄(小結(jié))

    這篇文章主要介紹了linux系列之常用運維命令整理筆錄(小結(jié)),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • CentOS 下yum安裝mysql、jdk和tomcat的方法

    CentOS 下yum安裝mysql、jdk和tomcat的方法

    這篇文章主要介紹了CentOS 下yum安裝mysql、jdk和tomcat的方法的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • linux內(nèi)核編程container of()函數(shù)介紹

    linux內(nèi)核編程container of()函數(shù)介紹

    container_of在Linux內(nèi)核中是一個常用的宏,用于從包含在某個結(jié)構(gòu)中的指針獲得結(jié)構(gòu)本身的指針,這篇文章主要給大家介紹了關(guān)于linux內(nèi)核編程container of()函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • 在CentOS 8上安裝htop的教程

    在CentOS 8上安裝htop的教程

    這篇文章主要介紹如何在CentOS 8上安裝htop以及如何使用該命令檢索系統(tǒng)統(tǒng)計信息。本文通過圖文實例詳解的形式給大家展示的非常詳細,需要的朋友參考下
    2019-11-11
  • centos7系統(tǒng)nginx服務(wù)器下phalcon環(huán)境搭建方法詳解

    centos7系統(tǒng)nginx服務(wù)器下phalcon環(huán)境搭建方法詳解

    這篇文章主要介紹了centos7系統(tǒng)nginx服務(wù)器下phalcon環(huán)境搭建方法,結(jié)合具體實例形式詳細分析了centos7的nginx服務(wù)器搭建phalcon的具體操作步驟與相關(guān)設(shè)置技巧,需要的朋友可以參考下
    2019-09-09
  • linux top命令詳解

    linux top命令詳解

    這篇文章主要介紹了linux top命令詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02

最新評論