"Systemd"
- 多台主機維護清單的實作紀錄:在容器上安裝 ansible-core 與 Terraform、由 Terraform 產生 inventory、用 Ansible 的範本部署每台的清單、以 sudo 與 systemd-run 執行檢查腳本,以及清理
要照著部署多台主機的維護清單並執行檢查腳本,或要讀跨主機執行時 ansible 的 exit code 與每台的 rc、門檻造成的 WARN、清單格式錯與連不上的主機各自印出什麼時,或要確認 Terraform 寫出的 inventory 的檔案權限、`--check` 預覽與實際部署結果不同的情形時,查在可拋棄的容器上實際跑過的指令、輸出與遇到的錯誤
- 只讀檢查腳本 host-check.py 的原始碼與逐段說明:選項的切分與各工具的白名單規則、清單的載入與驗證、指令的執行、各項檢查、路徑與時間的量測、結果檔與命令列,以及這一版的已知限制
要讀主機維護清單的只讀檢查腳本實際怎麼切分各工具的選項、怎麼驗證清單、怎麼判定 PASS、WARN 與 MANUAL、怎麼寫結果檔,或要照它的做法寫自己的檢查腳本時,查完整的 Python 原始碼與每一段這樣寫的理由
- systemd watchdog 與自動重啟
在單機 systemd 上做服務自動恢復時,釐清 watchdog 主動報活與 restart policy 被動拉起是兩套機制、以及為什麼要先重啟幾次才放棄
- Process supervisor 選型
在 systemd、supervisord、Docker restart policy、Kubernetes 之間選服務監管方式時,用平台能不能分開表達 startup、readiness、liveness、drain 當判斷標準
- 程序、服務與狀態怎麼判
要判斷一個程式活著沒、某個系統服務現在由誰提供、桌面 session 有沒有被鎖、或終端機多工器的 session 還在不在時,用對的權威來源而不是靠畫面或猜的名字
- 服務掛了怎麼自動知道:從肉眼盯到主動告警
不想每次都手動 systemctl 檢查服務死活、想讓機器在 service 掛掉時主動推播通知、或擔心整台機器當掉沒人知道時回來讀
- logind Session 與 Seat(VT 與輸入權的持有者)
compositor 從 SSH 起不來報 seat / DRM 錯、想確認哪個 session 在 active VT、或 loginctl 輸出跟畫面狀態對不上時讀
- systemd OnFailure(失敗觸發鉤子)
想讓某個服務進 failed 時自動觸發告警或修復動作、或發現 OnFailure 每次重啟中途都觸發把告警洗爆時讀
- systemd drop-in(不改原檔的設定疊加)
想覆寫套件裝的 systemd unit 又不被升級蓋掉、一次對所有 service 套一條設定、或搞不清 systemctl edit 改了哪個檔時讀
- journald(systemd-journald)
用 journalctl 查不到重開機之前的紀錄、journal 佔掉多少磁碟不清楚、某個服務的 log 出現 Suppressed 訊息,或要判斷一筆紀錄該去 journal 還是 /var/log 底下的檔案找時
- systemd timer
排程的工作沒有在預期的時間執行、主機關機期間錯過的排程不知道會不會補跑、要在 cron 與 systemd timer 之間選一種寫定期工作,或讀到 *.timer 檔與 systemctl list-timers 的輸出時
- 一個修法埋下三步後的雷:pacman 404 → -Syu 升 kernel → docker 起不來
Arch 上裝套件 404、修完之後 docker daemon 突然起不來、iptables 報 nf_tables 錯誤時回來讀 — 症狀與根因差三步的因果鏈與判讀法。