メインコンテンツまでスキップ

SYSTEMDによるサーバ管理

systemdの概要

systemd を使用してアプリケーションが使用するリソースを管理する

RHEL 9 では、cgroup 階層のシステムを systemd ユニットツリーにバインドすることにより、リソース管理設定をプロセスレベルからアプリケーションレベルに移行します。 したがって、システムリソースは、systemctl コマンドを使用するか、systemd ユニットファイルを変更して管理できます。

システムターゲット

systemd ターゲットを表示、変更、または設定するにはsystemctl ユーティリティーを使用します。

runlevelsystemd targetexample
0runlevel0.target, poweroff.targetシステムをシャットダウンし、電源を切ります。
1runlevel1.target, rescue.targetレスキューシェルを設定します。
2runlevel2.target, multi-user.target非グラフィカルな複数ユーザーシステムを設定します。
3runlevel3.target, multi-user.target非グラフィカルな複数ユーザーシステムを設定します。
4runlevel4.target, multi-user.target非グラフィカルな複数ユーザーシステムを設定します。
5runlevel5.target, graphical.targetグラフィカルな複数ユーザーシステムを設定します。
6runlevel6.target, reboot.targetシステムをシャットダウンして再起動します。

現在のデフォルトターゲットを確認

# systemctl get-default

デフォルトターゲットを変更する場合

# systemctl set-default <target name>

現在のターゲットを変更する場合

# systemctl isolate <target name>

サービスの操作

systemctl 基本的な操作

systemctl commandexample
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すべてのサービスのステータスを表示

サーバ状態操作のコマンド

commandexample
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