SYSTEMDによるサーバ管理
systemdの概要
systemd を使用してアプリケーションが使用するリソースを管理する
RHEL 9 では、cgroup 階層のシステムを systemd ユニットツリーにバインドすることにより、リソース管理設定をプロセスレベルからアプリケーションレベルに移行します。 したがって、システムリソースは、systemctl コマンドを使用するか、systemd ユニットファイルを変更して管理できます。
システムターゲット
systemd ターゲットを表示、変更、または設定するにはsystemctl ユーティリティーを使用します。
| runlevel | systemd target | example |
|---|---|---|
| 0 | runlevel0.target, poweroff.target | システムをシャットダウンし、電源を切ります。 |
| 1 | runlevel1.target, rescue.target | レスキューシェルを設定します。 |
| 2 | runlevel2.target, multi-user.target | 非グラフィカルな複数ユーザーシステムを設定します。 |
| 3 | runlevel3.target, multi-user.target | 非グラフィカルな複数ユーザーシステムを設定します。 |
| 4 | runlevel4.target, multi-user.target | 非グラフィカルな複数ユーザーシステムを設定します。 |
| 5 | runlevel5.target, graphical.target | グラフィカルな複数ユーザーシステムを設定します。 |
| 6 | runlevel6.target, reboot.target | システムをシャットダウンして再起動します。 |
現在のデフォルトターゲットを確認
# systemctl get-default
デフォルトターゲットを変更する場合
# systemctl set-default <target name>
現在のターゲットを変更する場合
# systemctl isolate <target name>
サービスの操作
systemctl 基本的な操作
| systemctl command | example |
|---|---|
| systemctl enable name.service | サービスを有効にします。 |
| systemctl disable name.service | サービスを無効にします。 |
| systemctl start name.service | サービスを開始します。 |
| systemctl stop name.service | サービスを停止します。 |
| systemctl restart name.service | サービスを再起動します。 |
| systemctl try-restart name.service | サービスが実行中の場合のみ、再起動します。 |
| systemctl reload name.service | 設定を再読み込みします。 |
| systemctl status name.service, systemctl is-active name.service | サービスが実行中かどうかをチェックします。 |
| systemctl list-units --type service --all | すべてのサービスのステータスを表示 |
サーバ状態操作のコマンド
| command | example |
|---|---|
| systemctl halt | システムを停止します。 |
| systemctl poweroff | システムの電源を切ります。 |
| systemctl reboot | システムを再起動します。 |
| systemctl suspend | システムをサスペンドします。 |
| systemctl hibernate | システムを休止状態にします。 |
| systemctl hybrid-sleep | システムを休止状態にしてサスペンドします。 |
systemdのログレベルを変更
systemd のデフォルト設定でログレベルが info に設定されていて大量のログが出るためログレベルを調整する
# vim /etc/systemd/system.conf
[Manager]
LogLevel=notice
変更の反映
# systemctl daemon-reexec
不要なサービスの停止
Activeなサービスを確認し不要なサービスが起動している場合は無効化する
# systemctl --type service
リスニングポートとサービスの確認
# netstat -pan -A inet,inet6
あるいは
# ss -luatp