Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; systemd カスタムサービスのテンプレートみたいなもの
- ; * インストール場所
- ; /etc/systemd/system 以下 (拡張子 service)
- ; * 下で触れてないこと
- ; 普通のサービスにありがちな PID file みたいなものには一切触れていない。
- ; systemd のマニュアルとか ArchWiki でお勉強。
- [Unit]
- ; * 依存関係 (書き方)
- ; Requires と After の後には依存関係 / 順序関係を書く。Before も順序関係だが、あまり使わない。
- ; Require : このサービスが、指定したサービス等を必要とする (ただし、起動順序は問わない)
- ; After : このサービスが、指定したサービス等が起動された後に起動される (起動順序の制御)
- ; 基本的に、Require で書いたものは After にも書く。
- ; * 依存関係 (ターゲット例)
- ; network.target : サービスではなく、ネットワーク機器が使用可能になったタイミングを示すターゲットと呼ばれるもの
- ; network-online.target : 同じくターゲットで、DHCP 等の設定が完了し接続可能な状態になったときを想定
- Description=サービスの名前と簡単な解説
- Requires=依存関係
- After=順序関係
- [Service]
- ; * サービスタイプ
- ; サービスタイプは色々あり、従来の rc で起動するような、
- ; 親プロセス自体はすぐ起動して fork を行い、そのまま終了する forking と呼ばれるタイプもある。
- ; が、個人でカスタムサービスを作る際に便利なのは simple。
- ; これは start するとずっと起動したままのプログラムやシェルスクリプトのためのサービスタイプ。
- ; さらに RemainAfterExit というパラメータもあり、yes を指定するとメインプログラムが
- ; 終了していても (すぐに終了しても) 管理上はアクティブなものとして扱われる。
- ; (これは後述の ExecStop とともに使うと非常に便利)
- ; * ExecStart, ExecStop
- ; その名の通り、開始時、終了時に実行するコマンドを示す。
- ; これらの他に、ExecReload みたいな変わり種もある。
- ; * KillMode
- ; サービス終了時に、どのようにプロセス (やプロセス群) を終了させるかの指定。
- ; control-group にしておけば、メインプロセスから起動したプロセスすべてが
- ; (ExecStop で指定したコマンドの後に) 終了させられる指定になる。
- Type=simple
- User=ユーザー名
- ExecStart=開始コマンド
- KillMode=control-group
- [Install]
- ; 起動用ランレベルのようなもので、大抵の場合弄る必要は無い。
- WantedBy=multi-user.target
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement