9月14日(月)3、4コマ目
今日、やったこと
systemd版「一人でやってみよう」解説
今日のホワイトボード
その1 ユニット定義ファイルの有無確認
ユニット定義ファイルは以下にある。
| パス | 特徴 |
|---|---|
| /usr/lib/systemd/system/ユニット名 | OSがあらかじめ用意してあるユニット。 基本的にこのファイルは変更しない。 |
| /etc/systemd/system/ユニット名 | デフォルトから変更する場合や新規作成時はここに作成。 |
![]() |
| 図 その1 ユニット定義ファイルの有無確認 |
その2 ユニットが自動起動になっているか?
自動起動にすると、OS起動時にsystemdによってプロセスが起動される。
![]() |
| 図 その2 ユニットは自動起動になっているか? |
その3 ユニットは起動中?
プロセスは起動中か?
systemdはプロセス起動後もプロセスをチェックしている。
![]() |
| 図 その3 ユニットは起動中? |
その4 依存関係
起動順序と似ているが、依存関係によって起動するユニットが決定される。
依存関係はユニット定義ファイルの「Wants」、「Requires」で指定する。
![]() |
| 図 ユニット間の依存関係 |
その5 起動順序
まさにユニットの起動順序。
起動順序のユニット定義ファイルで設定する。
項目は「After」、「Before」。
![]() |
| 図 ユニットの起動順序 |
その6 ユニット新規作成
ユニットを新規作成するには、ユニット定義ファイルを作成する。
ユニット定義ファイルへのパスはその1を参照。
ユニット定義ファイルの中身は
- 起動するコマンドの指定(ExecStart)
- 起動順序(After、Before)
- 依存関係(Wants、Requires)
- ターゲットへの組み込み(WantedBy、RequiredBy)
はおさえておいてください。
その7、8はすっとばして
その9
自動起動させるには
systemctl enable ユニット名
を実行する。
実行すると、ユニット定義ファイルのWantedByまたはRequiredByに指定したターゲットに組み込まれ、ターゲット起動時に一緒に起動される。
ターゲットに組み込まれると
/etc/systemd/system/ターゲット名.watns/ディレクトリに
ユニット定義ファイルへのリンクが作成される。
![]() |
| 図 自動起動設定すると |
その10 ユニット起動・停止・再起動
特にコメントなし。
![]() |
| 図 ユニット起動・停止・再起動 |
その11~13 ターゲット変更
ターゲットの変更自体は
systemctl isolate ターゲット名
でできる。
おさえてほしいのは
- 起動時にはsystemdが起動するターゲットはdefault.target
- default.targetは実体はない、他ターゲットへのリンク
- 利用していたLinuxはgraphical.targetへのリンク
- graphical.targetはマルチユーザー+GUI
- graphical.targetはmulti-user.targetへ依存
- multi-user.targetはさらに別ターゲットに依存、起動順序指定あり
結局、依存関係を辿っていくとOSのベーシックな機能であり、そこから順に各機能を立ち上げていく。このへんの流れをおさえておいてください。
![]() |
| 図 OS起動とターゲットの関係 |
次回はテストです。








コメント