13,136
回編集
| 81行目: | 81行目: | ||
<br> | <br> | ||
ここでは、.service拡張子のユニットについて記載する。<br> | ここでは、.service拡張子のユニットについて記載する。<br> | ||
<br><br> | |||
== ユニットファイルの構造 == | |||
ユニットファイルは、3つのセクションで構成される。<br> | |||
<br> | |||
* [Unit]セクション | |||
*: ユニットの種類によらない一般的なオプションの設定 | |||
** Description | |||
**: このユニットの説明を記述する。 | |||
**: <code>sudo systemctl status</code>を実行する時に表示される。 | |||
** Documentation | |||
**: このユニットについてのドキュメントのURIを記述する。 | |||
** After | |||
**: このユニットの前に起動するユニットを記述する。 | |||
** Before | |||
**: このユニットの後に起動するユニットを記述する。 | |||
** Requires | |||
**: このユニットが依存するユニットを記述する。 | |||
**: 前のユニットの起動が失敗した場合は起動しない。 | |||
** Wants | |||
**: このユニットが依存するユニットを記述する。 | |||
**: 前のユニットの起動が失敗した場合でも起動する。 | |||
** Conflicts | |||
**: 指定したユニットと一緒に起動しない。 | |||
*: <br> | |||
* [Service]セクション | |||
*: サービスに関する設定を記述する。 | |||
** Type | |||
**: プロセスの起動方法を記述する。 | |||
**: 各方法は以下の6通りある。 | |||
**: <u>"起動が完了する"</u>とは、次の他ユニットが実行可能であることを意味する。 | |||
*** simple | |||
***: デフォルト。プロセスが起動した時点で起動が完了する。 | |||
*** forking | |||
***: フォークして親プロセスが終了した時点で起動が完了する。 | |||
*** oneshot | |||
***: simpleと似ているが、次のユニットを実行する前に自身のプロセスを終了する。 | |||
*** dbus | |||
***: D-Busを使用するプロセスであり、D-Busの接続名を見つけた時に起動が完了する。 | |||
*** notify | |||
***: simpleと似ているが、<code>sd_notify</code>関数で起動完了のメッセージを受信した時に起動が完了する。 | |||
*** idle | |||
***: simpleと似ているが、他のジョブが終了するまで待機する。(シェルへの出力が混ざらないようにするため) | |||
** ExecStart | |||
**: 起動時に実行するコマンドを記述する。 | |||
** ExecStop | |||
**: 停止時に実行するコマンドを記述する。 | |||
** ExecReload | |||
**: リロード時に実行するコマンドを記述する。 | |||
** Restart | |||
**: プロセスが停止した時、プロセスを再起動する条件を記述する。 | |||
**: 各条件は以下の4つがある。 | |||
*** always | |||
***: 常に自動的に再起動する。 | |||
*** no | |||
***: 再起動しない。 | |||
*** on-success | |||
***: 終了コードが0で再起動する。 | |||
*** on-failure | |||
***: 終了コードが0以外で再起動する。 | |||
** RestartSec | |||
**: 再起動するまでの待ち時間(秒)を記述する。 | |||
* [Install]セクション | |||
*: インストール時の設定を記述する。 | |||
** Alias | |||
**: <code>sudo systemctl enable</code>コマンドの実行時に、Aliasで指定された名前のユニットのシンボリックリンクを作成する。 | |||
** RequiredBy | |||
**: <code>sudo systemctl enable</code>コマンドの実行時に、このユニットの".required"ディレクトリにリンクを作成する。 | |||
** WantedBy | |||
**: <code>sudo systemctl enable</code>コマンドの実行時に、このユニットの".wants"ディレクトリにリンクを作成する。 | |||
** Also | |||
**: <code>sudo systemctl enable / disable</code>コマンドの実行時に、同時にenable / disableするユニットを記述する。 | |||
<br> | |||
ユニットの詳細を知りたい場合は、以下のコマンドを実行する。<br> | |||
man systemd.unit | |||
<br> | |||
サービスの詳細を知りたい場合は、以下のコマンドを実行する。<br> | |||
man systemd.service | |||
<br><br> | <br><br> | ||