Systemd 筆記

Unit

  • After: 本服務在這些服務之後啓動
  • Before: 本服務在這些服務之前啓動
  • Wants: 弱依賴,這些服務是否運行不影響本服務啓動
  • Requires: 強依賴,本服務的運行依賴這些服務

Service

  • EnvironmentFile: 環境參數文件,內部 key=value 格式,在當前文件中使用 $key 獲取 value
  • ExecStart: 啓動時執行的命令
  • ExecReload: 重啓服務時執行的命令
  • ExecStop: 停止服務時執行的命令
  • ExecStartPre: 啓動服務之前執行的命令
  • ExecStartPost: 啓動服務之後執行的命令
  • ExecStopPost: 停止服務之後執行的命令
  • "-" 配置項前的減號"-"表示"抑制錯誤",發生錯誤時不影響後續命令執行
  • Type
    • simple: 默認,ExecStart 啓動的進程就是主進程
    • forking: ExecStart 啓動時 fork 子進程,之後該父進程退出,子進程成爲主進程
    • onshot: 類似 Simple,只執行一次
    • dbus: 類似 Simple,等待 D-Bus 信號啓動
    • notify: 類似 Simple,啓動完成後發出通知信號
    • idle: 類似 Simple,等到其他任務執行完成後纔會啓動該服務
  • RemainAfterExit=yes: 進程退出後服務保持運行
  • KillMode
    • control-group: 默認,殺掉所有子進程
    • process: 只殺主進程
    • mixed: 主進程收到 SIGTERM 信號,子進程收到 SIGKILL 信號
    • none: 不殺進程,只執行服務的 stop 命令
  • Restart
    • no: 默認,退出後不重啓
    • on-success: 正常退出時重啓
    • on-failure: 非正常退出、被信號終止或超時重啓
    • on-abnormal: 被信號終止和超時重啓
    • on-abort: 收到沒有捕捉到的信號終止時重啓
    • on-watchdog: 超時退出,纔會重啓
    • always: 不管是什麼退出原因,總是重啓
  • RestartSec: 系統重啓前等待的秒數

Install

  • WantedBy=multi-user.target

重新加載配置文件

systemctl daemon-reload
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章