ウェブサイト検索

Linuxシステムの現在のランレベルを確認する方法


systemdが登場する前、多くの主要なLinuxディストリビューションはSys-Vスタイルのinitシステムを実行していました。Sys-Vは、システムで起動するプロセスを決定するために7つの異なる「ランレベル」を使用していました。例えば、ランレベル3は通常コマンドラインおよびそれに関連するプログラムのために予約されており、一方、ランレベル5はGUIとそれに必要なすべてのプロセスを起動します。結果は、問題のディストリビューションによって異なる場合があります。

最近では、ほとんどすべてのLinuxディストロがinitシステムとしてsystemdを採用しています。一部のディストロはまだSys-Vを使用しており、上記で説明されたランレベルの実装は依然として存在しています。systemdシステムでは、ランレベルの概念はまだ存在しますが、systemdの「ターゲット」に適応されています。

SYS-Vの名残は一部のシステムに残っており、runlevelのようなコマンドはまだ機能します。しかし、一部のモダンなsystemdディストリビューションでは、このサポートが完全に排除されています。このガイドでは、Linuxで現在のランレベルを確認する方法を示します。

このチュートリアルでは、あなたは学びます:

  • 現在のランレベルを確認する方法

Linuxシステムで現在のランレベルを確認する

現在の実行レベルを確認する

次のコマンドを使用して現在のランレベルを表示できます。これは一部のsystemdディストリビューションでのみ機能しますが、Sys-Vシステムにはどれでも機能するはずです。


runlevel

あるいは、このコマンドを実行できます:


who -r

Linuxシステムの現在のランレベルを確認する

上のスクリーンショットでは、私たちのシステムが現在ランレベル5にあることが分かります。これはsystemdのディストリビューションであり、ランレベルの概念は主に互換性のために保持されています。実際には、さまざまなランレベルが対応するsystemdターゲットにマッピングされています。次のコマンドを使って、自分で確認することができます。


ls -l /lib/systemd/system/runlevel*

ここで、systemdターゲットがSys-Vスタイルのランレベルにどのようにマッピングされているかを見ることができます。

ランレベルと同様に、デフォルトで7つのsystemdターゲットがあります。主な2つのターゲットはmulti-user.targetとgraphical.targetです。次のコマンドを使用して、システムのデフォルトのsystemdターゲットを確認できます。


systemctl get-default

デフォルトのsystemdターゲットを決定する

私たちのテストシステムはgraphical.targetにあり、GUIを実行しているため、それは理にかなっています。

このターゲットにマッピングされているサービスを確認するには、次のコマンドを使用してください。


systemctl list-dependencies graphical.target

systemdにおけるgraphical.targetの依存関係を確認する

どのsystemdターゲット(またはランレベル)がサービスの実行に必要かを確認するには、次のコマンドを試してください。この例では、SSHサービスを確認します。


systemctl show -p WantedBy sshd.service

サービスがどのsystemdターゲットに割り当てられているかを確認する

特定のサービスが割り当てられた実行レベルで自動的に起動するのを無効にしたり、有効にしたりするには、次のコマンドを使用できます。


sudo systemctl enable sshd.service
OR
sudo systemctl disable sshd.service

Sys-V init システムでは、古い chkconfig コマンドを使用しますが、これは現代の systemd ディストリビューションでは機能しません。例えば、runlevel 2 で apache2 を実行するには、次のコマンドを使用します:


chkconfig apache2 2

締めくくりの考え

このガイドでは、Linuxシステムの現在のランレベルを確認する方法を見ました。また、ランレベルに関連するコマンドはSys-Vの残りものであり、特定のsystemdディストロにおいてのみ後方互換性の手段として実装されていることも見ました。systemdを使用している場合(最も可能性が高い)でも、Sys-Vを使用しているディストロでも、ここにあるコマンドはランレベルを特定し、その中でプロセスを実行するかどうかを有効または無効にする手助けをしてくれます。

関連記事: