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.pswp.cn/diannao/79309.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/79309.shtml
英文地址,請注明出處:http://en.pswp.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;字節…