系統初始化 / 初始化程式服務(systemd)

開機管理程式

Linux 預設的開機管理程式為 GRUB(Grand Unified Bootloader),讓使用者在系統啟動時選擇要啟動的作業系統。GRUB 第二版(GRUB2)是 GRUB 的改良版本。

  • GRUB2:開機時按住 Shift 鍵可顯示選單(在某些發行版中為 Esc)。
  • GRUB:使用 Esc 顯示選單。

/boot/grub/grub.cfg

GRUB2 的主要設定檔,此檔案不應手動更改。若需變更設定,應修改以下檔案之一後執行 update-grubgrub-mkconfig

  • /etc/default/grub
  • /etc/grub.d/ 目錄下的腳本

/etc/default/grub

此檔案為 GRUB 的使用者可編輯設定檔,常用設定如下:

設定名稱 說明
GRUB_DEFAULT 設定預設啟動選項,例如:0 表示第一個選項,1 表示第二個。選項依 /boot/grub/grub.cfg 中的 menuentry 順序。
GRUB_TIMEOUT 開機選單等待使用者選擇的秒數,設為 0 表示立即啟動預設選項,設為 -1 表示永遠不自動啟動。
GRUB_HIDDEN_TIMEOUT 若設此數值,則開機時會在該秒數內隱藏選單。若在此時間內按下 Shift 鍵可顯示選單。
GRUB_HIDDEN_TIMEOUT_QUIET 設為 true 表示不顯示倒數時間,false 則顯示。

修改後需執行下列指令重新產生 grub.cfg

sudo update-grub

(在某些系統中可能使用 grub-mkconfig -o /boot/grub/grub.cfg


查詢核心版本

# 查詢目前核心版本
uname -r

# 查詢詳細系統與核心版本
uname -a

執行層級(Run level)

雖然現代 Linux 系統多已使用 systemd,但傳統 runlevel 概念仍可參考:

Run level Ubuntu 意義 Red Hat 意義
0 關機 關機
1 單人模式(維護模式) 單人模式
2 多人模式(含網路,不含圖形介面) 多人模式(受限)
3 多人模式(含網路) 文字介面多人模式
4 保留 保留
5 圖形介面 圖形介面多人模式
6 重新開機 重新開機

注意:使用 systemd 的系統以 target 取代 runlevel,例如:

  • runlevel 3 對應 multi-user.target
  • runlevel 5 對應 graphical.target

查詢目前目標:

systemctl get-default

修改預設目標:

sudo systemctl set-default graphical.target

初始化程式 systemd

查詢服務狀態

# 查看所有正在運行的服務
systemctl

# 查看所有服務(包含已停用)
systemctl --all

# 查看所有未啟動服務
systemctl --all --state=inactive

systemctl 常用服務操作指令

操作 服務名稱 說明
start sshd 啟動 sshd 服務
stop sshd 停止 sshd 服務
restart sshd 重新啟動 sshd 服務
reload sshd 重新載入 sshd 設定(不重新啟動)
enable sshd 開機自動啟動 sshd
disable sshd 開機不自動啟動 sshd
status sshd 查看 sshd 當前狀態

可搭配 --now 一次性執行啟用/停用與啟動/停止,例如:

sudo systemctl enable --now sshd

延伸閱讀