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でログ追跡ができる
コメントを残す