「設定 - Systemdサービスユニット」の版間の差分

ナビゲーションに移動 検索に移動
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>


案内メニュー