ウェブサイト検索

SystemD でランレベル (ターゲット) を変更する方法


Systemd は、Linux 用の最新の init システムです。一般的な SysV init システムおよび LSB init スクリプトと互換性のあるシステムおよびサービス マネージャーです。次の記事で説明されているように、SysV init の欠点を克服することを目的としていました。

  1. 「init」と「systemd」の背後にある物語: Linux で「init」を「systemd」に置き換える必要がある理由

Linux などの Unix 系システムでは、オペレーティング システムの現在の動作状態はランレベルl と呼ばれます。どのシステム サービスが実行されているかを定義します。 SysV init などの一般的な init システムでは、ランレベルは番号で識別されます。ただし、systemd ではランレベルはターゲットと呼ばれます。

推奨読書: システムの起動プロセスとサービスの管理 (SysVinit、Systemd、および Upstart)

今回はsystemdでランレベル(ターゲット)を変更する方法を解説します。先に進む前に、ランレベルの数値とターゲットの関係について簡単に説明しましょう。

  • 実行レベル 0poweroff.target と一致します (runlevel0.targetpoweroff.target へのシンボリック リンクです) )。
  • 実行レベル 1rescue.target と一致します (runlevel1.target rescue.target へのシンボリック リンクです) )。
  • 実行レベル 3 は multi-user.target によってエミュレートされます (runlevel3.targetmulti-user.target へのシンボリック リンクです) )。
  • 実行レベル 5graphical.target によってエミュレートされます (runlevel5.targetgraphical.target へのシンボリック リンクです) )。
  • 実行レベル 6reboot.target によってエミュレートされます (runlevel6.targetreboot.target へのシンボリック リンクです) )。
  • 緊急emergency.target と一致します。

Systemd で現在のターゲット (実行レベル) を表示する方法

システムが起動すると、デフォルトで systemd はdefault.target ユニットをアクティブ化します。主な仕事は、依存関係を介してサービスやその他のユニットを取り込んでアクティブ化することです。

デフォルトのターゲットを表示するには、以下のコマンドを入力します。

#systemctl get-default 

graphical.target

デフォルトのターゲットを設定するには、以下のコマンドを実行します。

systemctl set-default multi-user.target  

Systemd でターゲット (ランレベル) を変更する方法

システムの実行中にターゲット (実行レベル) を切り替えることができます。つまり、そのターゲットで定義されたサービスとユニットのみがシステム上で実行されるようになります。

ランレベル 3 に切り替えるには、次のコマンドを実行します。

systemctl isolate multi-user.target 

システムをランレベル 5 に変更するには、以下のコマンドを入力します。

systemctl isolate graphical.target

systemd の詳細については、次の役立つ記事を参照してください。

  1. Linux で「Systemctl」を使用して「Systemd」サービスとユニットを管理する方法
  2. シェル スクリプトを使用して Systemd で新しいサービス ユニットを作成して実行する方法
  3. システム起動プロセスとサービスの管理 (SysVinit、Systemd、および Upstart)
  4. Journalctl を使用して Systemd でログ メッセージを管理する [総合ガイド]

このガイドでは、systemd を使用してランレベル (ターゲット) を変更する方法を示しました。この記事に関するご質問やご意見がございましたら、下のコメント フォームを使用してお送りください。