systemdとは?systemctlコマンドとは

systemdとは?

systemdは起動時にカーネルが起動する最初のLinuxの常駐プログラム・デーモンの一つです。

systemdは他のプロセスを管理する親玉のようなプロセスです。

今回はsystemdについて紹介していきます。

systemdとは?どんな役割があるのか?

sysytemdはカーネルによって起動される一番最初のプロセスです。プロセスIDは1です。

systemdのプロセス

systemdのプロセス

プロセスはCPUによって実行されるプログラムそのものです。一つのアプリケーションに複数のプロセスが存在する場合があります。デーモンとはバックグラウンドで動くプロセスで常に待機しています。httpdやsshdもデーモンです。systemdはシステム管理デーモンです。

デーモンとサービスデーモンとは?サービスと同じ?

systemdはすべてのデーモンを管理するデーモンです。sysytemdが親となって子プロセスが開始されます。

プロセスツリーの頂点にsystemdがある

プロセスツリーの頂点にsystemdがある。systemdは全てのプロセスの親プロセス

systemdのように他のプログラムを動かす親的なプログラムのことをinitプロセスと呼びます。

initからの移行

現在systemdは多くのディストリビューションで採用されているinitプロセスです。initの弱点であった並列処理、シェルスクリプトによる複雑な初期化などが解決されています。

systemdに対する批判もありますが、事実上sysytemdはSysV initの後継となっています。

systemctlコマンド

systemdでは起動や状態確認などをsystemctlコマンドで行います。

  • sysetmctl start service名 サービスの起動
  • sysetmctl stop service名 サービスの停止
  • sysetmctl restart service名 サービスの再起動
  • sysetmctl status service名 サービスの状態確認
  • sysetmctl reload service名 サービスの設定読み込み
  • sysetmctl enable service名 サービスの自動起動有効
  • sysetmctl disable service名 サービスの自動起動無効
    • sysetmctl list-units  ユニットの一覧を表示
    • systemctl list-unit-files サービスの自動起動状態を確認
  • systemctl get-default デフォルトターゲットの確認
  • systemctl set-default graphical.target デフォルトターゲットの変更

これらのコマンドがあります。

systemctlコマンドはD-BUSというメッセージバスと呼ばれるアプリケーションとアプリケーションとのやりとりを行う仕組みを介してsystemdとやりとりします。

ターゲットの変更(ランレベル)

initdで使われていたランレベルに相当するものをsystemdではターゲットと呼びます。詳しくは以下のページを参照してください。

ターゲット・ランレベルとは?ターゲット (ランレベル)とは?設定の方法

ターゲットを変更するには

# systemctl set-default multi-user.target

ターゲットの確認は

# systemctl get-default

で確認します。

ユニット

systemdには12のユニットと呼ばれる単位でシステムを管理します。

systemdはユニットの中のdefalt.targetを頂点としてユニットを起動していきます。

  • Service:デーモンの起動などの管理
  • Target : ユニットのグループ
  • Automount:自動マウント
  • Device:デバイスの検知
  • Mount:ファイルシステムのマウントポイントを制御
  • Path:ファイル変更時などにユニットをトリガー
  • Scope: 外部作成のプロセス
  • Slice :システムプロセスを管理するユニットグループ
  • Snapshot :systemd ユニットの状態を保存・復元する
  • Socket:ソケットからの通信
  • Swap:メモリースワップをカプセル化
  • Timer :タイマーによって他のユニットをトリガーする

コメントを残す

メールアドレスが公開されることはありません。