Systemdメモ
基本
Unitの種類 * target 複数のUnitをグループ化する * service サービスを起動
Unit名の拡張子で種類が分かる
設定ファイル
systemd全体の設定ファイル * /etc/systemd/system.conf * /etc/systemd/user.conf
特に–unitでの指定が無ければ、下記が読み込まれる
Unitの定義ファイル
/usr/lib/systemd/system デフォルトの設定内容
パッケージをインストールしたらここに.serviceが置かれるみたい。
/etc/systemd/system デフォルトから変更した内容
httpd /usr/lib/systemd/system/httpd.service
変更を加える場合
/etc/systemd/system/httpd.service.d/を作成
limits.confを作成
[service} LimitNOFILE=65536
Unitの定義ファイル2
/usr/lib/systemd/system/には、RPMパッケージが提供するシステム標準の設定を配置しておき、システム管理者が設定変更する場合は、/etc/systemd/systemにファイルをコピーした上で修正を加えます。
頂点
「default.target」というUnitを頂点
依存関係の骨組み
targetタイプのUnitで依存関係の枠組みを作成する
例えば、 /lib/systemd/system/multi-user.target には Requires=basic.target みたいなの書かれている
Requiresを辿って、枠組みを知ることができる?
はじめ
systemd は default.targetにアクセス。
ただし
/etc/systemd/system/default.target
ll /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 37 5月 18 16:03 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target
このリンクが起動時のランレベルに相当し、このリンクを変えるとランレベルが変更される
「 AはBに依存する」の定義方法
A.service
[Unit] Wants=B.service
方法2.AのwantsディレクトリにBのシンボリックリンクを作成 A.serviceファイルが存在するディレクトリ上に「A.service.wants」ディレクトリを作成し、このディレクトリ内にB.serviceへのシンボリックリンクを作成
/etc/systemd/system/multi-user.target.wants/ など
起動シーケンス
/usr/lib/systemd/systemd 起動
systemdが起動すると、はじめに「default.target」から「Requires/Wants」の関係をたどって、起動するべきUnitの全体を把握
起動対象の各Unitの「After/Before」の依存関係から起動順序を決定
systemdの起動でのメリット
systemdは、順序関係の情報をもとにして、複数のUnitをできるかぎり並列に起動していきます。