😄

[Linux]: Systemdについて調べたメモ

に公開

[Linux]: Systemdについて調べたメモ

Systemdとは

Linuxの起動時の処理やシステムの管理、デーモンプログラムの起動などを行うソフトウェア群でRedHat社のエンジニアが開発を開始した。

以前使用されていたSysVinitの代わりに多くのLinuxディストリビューションに採用されている。

initが行ってきた制御やランレベル、起動過程を置き換え、ユーザーログインやシステムコンソール、デバイスホットプラグ、ロギングを処理し、Linuxにおける共通するサービスを統合する。

カーネルが一番最初に生成するユーザープロセスでプロセス番号「1」が与えられる

主な機能

  • ブート時のシステムサービスの並行起動
  • デーモンのオンデマンドアクティベーション
  • 依存関係ベースのサービス制御ロジック
> ps -aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 444444 11532 ?        Ss   18:03   0:02 /lib/systemd/systemd --system --switched-root --deserialize 31

> pstree
systemd ─┬─ NetworkManager
          ├─ auditd
          ├─ chronyd
          ├─ crond
          ├─ firewalld
          ├─ rsyslogd
          └─ sshd

ブートシーケンス

initdとの違い

initd

  • 伝統的なinitシステム
  • ランレベルを使用して動作モードを制御し、各ランレベルにサービスが紐づけられる
  • 並列起動が難しく、ブート時間が長くなる

systemd

  • 各種サービスを並列起動することができ、ブート時間を大幅短縮
  • ユニットファイルによるサービスの定義
  • systemdに依存する反面、依存関係の自動管理を行ってくれる
  • ログ管理システムを統合されているので、システムログを一元管理

ユニットとは

ユニットとはsystemdが管理するリソースやタスクの基本単位のことで設定ファイルを基にシステムを構成し、起動する。
動作するサービスやデバイス、マウントポイントを統一的に管理することができる

ユニットファイルの格納場所

  • /usr/lib/systemd/system
  • /run/systemd/system
  • /etc/systemd/system

service

  • デーモンプロセスやアプリケーションを管理

device

ハードウェアデバイスとその可溶性を管理する

mount

  • ファイルシステムのマウントポイントを管理
  • 一部は/etc/fstabを元に自動生成される

target

  • 複数のユニットをグループ化
  • システムの状態を定義

timer

  • 時間ベースでの実行をスケジュール
  • cronの代替え

基本的な使い方

systemctlコマンドで制御する

基本書式

systemctl [オプション] コマンド [名前]

オプション、コマンドどちらも使用率が高そうなやつのみ記載。

オプション

オプション 意味
-t タイプ ユニットタイプを指定
-l ユニット・プロセス名を省略せずにすべて表示する
-s シグナル 指定したプロセスにシグナルを送信する (デフォルトはSIGTERM)

コマンド

コマンド 意味
list-units 起動している全ユニット表示
list-utils-files インストールされている全ユニット表示
enable ユニット 指定したユニットをシステム起動時に起動する
disable ユニット 指定したユニットをシステム起動時に起動しないように
start ユニット 指定したユニットを起動する
stop ユニット 指定したユニットを起動しない
reload ユニット 指定したユニットの設定ファイルを再読み込み
status ユニット 指定したユニットの状態を表示
kill ユニット 指定したユニットにシグナルを送信して止める
is-enable ユニット 指定したターゲットがシステム起動時に起動するか確かめる

参考

最後に

間違っていることあればコメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion