06. systemd: サービス管理の心臓部

06. systemd: サービス管理の心臓部

Linuxを起動したあと、各種サービスを順序よく動かすのがsystemdです。

「nginxが起動しない」「自動起動されない」を解く鍵になります。

systemdの役割

  • PID 1として起動全体を管理
  • service, socket, targetなどのunitを管理
  • 依存関係に基づいて起動順を制御
  • ログをjournalとして扱う

図解テキスト


systemd (PID 1)
  -> multi-user.target
      -> network.target
      -> ssh.service
      -> nginx.service

依存関係:
nginx.service After=network.target

よく使うコマンド


systemctl status nginx
systemctl list-units --type=service --state=running
systemctl cat nginx
journalctl -u nginx -b

unitファイルの読み方


[Unit]
Description=nginx web server
After=network.target

[Service]
ExecStart=/usr/sbin/nginx -g 'daemon off;'
Restart=always

[Install]
WantedBy=multi-user.target

ここでのポイントは、

  • [Unit]: 依存関係
  • [Service]: 実行内容
  • [Install]: どのtargetで有効化するか

つまり何なのか

systemdは単なる起動スクリプト置き場ではありません。

Linuxシステム全体のオーケストレーターです。

今回理解できたこと

  • systemdはPID 1で、起動と運用の中心
  • unitを読むとサービスが失敗する理由を追いやすい
  • journalctlでログ追跡ができる

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です