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