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起動とターゲットの関係

次回はテストです。

コメント

このブログの人気の投稿

6月22日(月)3、4コマ目

6月8日(月)1,2コマ目(B班)、3,4コマ目(A班)

9月28日(月)3、4コマ目