Linuxのsystemdについて

目次

1.systemdとは
 systemdはLinuxのシステムを起動するときに様々なプログラムを動かす元となるプログラムです。
 systemdはユニット(unit)単位のユニットファイルで管理します。

2.systemdターゲット
 従来はランレベルによって実行するシステムサービスが定義されていましたが、ランレベルの概念がsystemdターゲットに代わり、ターゲットユニットをグループ化してサービスを起動します。
(1)default.target
 default.targetを起点として、ユニットが起動されます。
 default.targetの実体はシンボリックリンクでどのターゲットに紐づけられるかは下記のコマンドにより、/etc/systemd/system/default.target にあるシンボリックリンクを解決して結果を表示します。

$ systemctl get-default

ターゲットの種類は
・graphical.target:グラフィカル、マルチユーザシステムを設定
・multi-user.target:非グラフィカル、マルチユーザシステムを設定
・rescure.target:レスキューシェル(シングルユーザ)を設定
・emergency.target:エマージェンシーシェルを設定

3.現在のターゲットの表示
 読み込み済みのターゲットユニットの一覧の表示

$ systemctl list-units --type target

 UNIT:ユニットの正式名
 LOAD:ユニットが読み込まれているかどうか
 ACTIVE:ユニットファイルアクティベーションの状態
 SUB:詳細な状態
 DESCRIPTION:説明
 状態に関係なく読み込み済みユニットのすべてを表示する場合は、オプションの –all または -a を付けます。

$ systemctl list-units --type target --all

4.デフォルトターゲットの変更
 name を、デフォルトで使用するターゲットユニットの名前 (multi-user など) に置き換えます。

# systemctl set-default name.target

5.現在のターゲットの変更
 name を、デフォルトで使用するターゲットユニットの名前 (multi-user など) に置き換えます。

# systemctl isolate name.target

6.ユニットの起動リスト表示
 ユニットの依存関係の表示は下記のコマンドを実行します。

$ systemctl list-dependencies

7.ユニットの起動順番の表示
 ユニットの起動順番の表示は下記のコマンドを実行し、
plot.svgファイルをブラウザで開きます。

$ systemd-analyze plot > plot.svg

(参考文献)
・SYSTEMD によるサービス管理
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/chap-managing_services_with_systemd

The end