システム起動のカスタマイズと systemd の基礎

Linux システムの起動プロセスは、systemd によって管理されます。サービスの起動順や動作の制御、起動モード(ターゲット)の切り替えなど、柔軟なカスタマイズが可能です。

この記事では、systemd の構造と操作方法、起動モードの制御についてわかりやすく解説します。


目次

✅ systemdとは?

systemd は Linux の init システム の一種で、以下のような役割を担います:

  • サービスの起動と監視
  • ブートプロセスの制御
  • ログの管理
  • ターゲット(旧ランレベル)の管理

📁 systemd の構成ディレクトリ

ディレクトリ内容
/usr/lib/systemd/標準のユニットファイル(OSやパッケージ由来)
/etc/systemd/管理者が作成・上書きするユニット設定
/run/systemd/実行時に動的に生成される情報(再起動でリセット)

補助コマンド:

systemd-delta

→ 上書き・差分のあるユニットファイルを確認できます。


🔧 基本的な systemctl 操作

操作内容コマンド例
サービスの状態確認systemctl status sshd
起動中のユニット一覧systemctl list-units
サービスの起動 / 停止systemctl start nginx / systemctl stop nginx
自動起動の有効化 / 無効化systemctl enable nginx / systemctl disable nginx
完全に無効化(マスク)systemctl mask nginx
マスク解除systemctl unmask nginx

🎯 systemd ターゲットとは?

従来の「ランレベル」に相当する概念が ターゲット(target) です。

ターゲット名概要
default.target通常のマルチユーザGUI(またはCLI)
multi-user.targetマルチユーザモード(GUIなし)
graphical.targetGUI付きのログインモード
rescue.targetシングルユーザモード(最小限)
emergency.targetシステム修復向け、rootシェルのみ

現在のターゲットを確認:

systemctl get-default

ターゲットを切り替え:

systemctl isolate multi-user.target

起動時ターゲットを変更:

systemctl set-default multi-user.target

🆘 rescue モードと emergency モード

🔹 rescue.target(レスキューモード)

  • ネットワークやログインサービスなし
  • root シェルで最小限の修復が可能

起動方法:

systemctl isolate rescue.target

🔹 emergency.target(緊急モード)

  • ルートファイルシステムのみマウント(読み取り専用)
  • 他のサービスは一切起動しない
  • 最低限の修復・調査用

起動方法:

systemctl isolate emergency.target

カーネルパラメータで起動時から移行も可能:

systemd.unit=rescue.target
systemd.unit=emergency.target

💡 実務でのTips

  • サーバーでGUI不要なら multi-user.target を既定に。
  • 開発者向けPCなら graphical.target がデフォルト。
  • トラブル時には rescue.target または emergency.target で復旧に。

🧩 まとめ

systemd を理解し操作できるようになることで、Linux の起動やサービスの管理を自信を持って行えるようになります。ターゲットの活用や rescue モードの使い方は、トラブルシューティングにも欠かせない知識です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次