揮発性のメモ2

知識をメモ書きしておく

systemdの最小のユニットファイル

systemdでプログラムの起動とかを制御するファイルをユニットファイルと呼ぶそう

Systemd入門(4) - serviceタイプUnitの設定ファイル - めもめも
10.6. systemd のユニットファイルの作成および変更 Red Hat Enterprise Linux 7 | Red Hat Customer Portal


/lib/systemd/system/hoge.service

[Unit]
Description=Hoge daemon service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/hoge
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target
  • After=network.target にしておけばだいたい間違いはない
  • Type=simple はデフォルト。普通のプログラムも背面でデーモンにしてくれる
    • 子プロセスを起動してすぐ死ぬタイプは forking
  • PIDは$MAINPIDで参照可能
  • Restart=always でプログラムが死んだら自動で再起動してくれる
    • 子プロセスを起動してすぐ死ぬタイプは 設定しちゃダメ


/etc/systemd/system/ の下に自分では置かないようにするのがコツ

systemctl daemon-reload
systemctl enable hoge