

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
runlevelとは?基本の意味と役割を知ろう
runlevel とは UNIX 系の OS で使われてきた「実行レベル」のことです。システムが起動してからどのサービスを動かすか、どの機能を使える状態にするかを示します。つまり 現在の状態と起動するサービスの組み合わせを表す目印です。初心者には「起動時に何を起動するかの設計図」と考えると分かりやすいでしょう。
代表的な runlevel の意味
古典的な SysVinit の世界では 0 から 6 までの数字が使われました。以下は一般的な意味です。
| 0 | 停止・電源を切る状態。システムを終了します。 |
| 1 | シングルユーザーモード。管理者だけが使える最小限の環境です。 |
| 2 | マルチユーザー環境だがネットワークを限定的にした状態。ディストリビューションによって解釈が異なります。 |
| 3 | 完全なマルチユーザー環境。ネットワークやサービスを含めた通常の運用状態。 |
| 4 | 未使用またはカスタム用。ディストリビューションごとに違います。 |
| 5 | マルチユーザー環境+グラフィカルなログイン。ほとんどのデスクトップ環境がここから始まります。 |
| 6 | 再起動の状態。システムを再起動します。 |
ただし現代の Linux は systemd が主流になっており、runlevel の考え方を「ターゲット」として扱います。各 runlevel は対応するターゲットに対応しています。例えば runlevel 3 相当は multi-user.target、runlevel 5 相当は graphical.target に近い動作になります。
systemd 時代の runlevel の使い方と確認方法
systemd 系の Linux では、従来の runlevel コマンドは互換性のために表示されることが多いです。しかし実際には systemctl を使って状態を確認・変更します。
現在のデフォルトターゲットを確認するには systemctl get-default を使います。現在の実行中のターゲットを確認するには systemctl status <ターゲット名> などを用い、 isolate で別のターゲットへ切り替えることができます。
代表的なコマンド例
| runlevel | 現在の実行レベルを表示。歴史的なコマンドで互換性のために使われることがあります。 |
| systemctl get-default | デフォルトのターゲットを表示します。 |
| systemctl isolate multi-user.target | コマンドライン環境へ切り替えます。 |
| systemctl isolate graphical.target | グラフィカル環境へ切り替えます。 |
これらの操作はシステムの管理者権限が必要です。誤って別のターゲットに切り替えると、ログイン画面が変わったり、サービスが停止したりすることがあります。十分に理解してから実行しましょう。
実務での使い方と注意点
実務では「ブート時に何を自動起動させるか」を決めるために runlevel やターゲットを設定します。サーバー運用では安全のため最小限の機能だけを起動する「低いレベル」を設定することが多いです。一方でデスクトップ環境では graphical.target を使って GUI を提供します。
まとめ:runlevel は古くからある概念ですが、現在の Linux でもその考え方は生きています。SysVinit 時代の名残としての runlevel、そして systemd でのターゲットという形で、現在の運用にも役立ちます。初心者のうちは、まず現状のターゲットと default を確認することから始めてみましょう。
runlevelの同意語
- ランレベル
- SysVinit 系で用いられる実行モードを指す日本語表現。0〜6 の番号によって現在の動作状態が決まり、起動するサービス群が変わります。
- 実行レベル
- ランレベルの別称として使われる日本語表現で、OS が現在どの実行モードにあるかを示す指標です。
- 起動レベル
- 起動時や運用中の動作モードを示す概念で、SysVinit の用語と対応します。
- initレベル
- init コマンドが参照するレベルのこと。SysVinit の実行レベルと密接に関連します。
- SysVinit実行レベル
- SysVinit に特有の実行レベルという概念を指す表現。サービスの起動・停止を決定する階層です。
- システム実行レベル
- システム全体の実行モードを表す日本語表現。主に SysVinit 用語を指す場合に用いられます。
- systemdターゲット
- systemd における『runlevel の代替概念』。複数のサービスグループをまとめる『ターゲット』という機能で、現在の動作を決定します。
- 起動ターゲット
- systemd のターゲットの一種で、起動時に必要なサービスの集合をまとめた概念。従来の runlevel に相当します。
runlevelの対義語・反対語
- 停止状態
- システムが完全に停止している状態。電源がオフまたは全てのサービスが停止しており、通常の動作は行われていません。runlevelの文脈でいう“停止状態の対義語”として使われます。
- シャットダウン状態
- OSの終了処理が完了して電源がオフになる状態。システムが活動を停止する場面の対義語として扱われることがあります。
- メンテナンスモード
- 管理者が点検・修復などのメンテナンス作業を行う状態。通常の運用状態(通常運用モード)の対義語として使われます。
- 通常運用モード
- 日常的なサービス提供を行い、安定して稼働している状態。runlevelの“通常の実運用”を指す対義語として頻繁に使われます。
- テキストモード
- 画面表示がテキストベースの操作モード。グラフィカルモードの対義語として使われることがあります。
- グラフィカルモード
- GUIを使って操作するモード。テキストモードの対義語として使われることが多いです。
- 起動中モード
- システムが起動処理を実行中で、まだ安定した稼働には至っていない状態。完全な運用状態の対義語として使われることがあります。
runlevelの共起語
- SysVinit
- 古典的なSysV initは、ランレベル(runlevels)でシステムの動作モードを切り替える初期化プロセスの実装。PID 1として起動し、/etc/inittabや各ディレクトリ(rc?.d)を用いてサービスを起動・停止します。
- init
- PID 1の実行プロセス。システムの起動・停止の中心で、他のデーモンを起動する役割を担います。
- inittab
- SysV initの設定ファイル。ランレベルごとに起動するスクリプトやデフォルトの動作を定義します。
- rc.d
- ランレベルごとの起動・停止スクリプトへのリンクを集めたディレクトリ群。起動順序にも影響します。
- /etc/init.d
- 個別サービスの起動スクリプトを格納する代表的なディレクトリ。
- /etc/rc.d
- ディストリビューションによって用いられる、ランレベル別のスクリプト格納ディレクトリ。
- rc0.d
- シャットダウン時に停止すべきスクリプトのリンクを配置するディレクトリ。
- rc1.d
- シングルユーザーモード用のスクリプトリンクを格納するディレクトリ。
- rc2.d
- ランレベル2用のスクリプトリンクを格納するディレクトリ(ディストリビューション依存)。
- rc3.d
- ランレベル3用のスクリプトリンクを格納するディレクトリ(ディストリビューション依存)。
- rc4.d
- ランレベル4用のスクリプトリンクを格納するディレクトリ(未使用の場合も多い)。
- rc5.d
- ランレベル5用のスクリプトリンクを格納するディレクトリ(多くはグラフィカル起動)。
- rc6.d
- 再起動時のスクリプトリンクを格納するディレクトリ。
- rc.local
- 特定の起動コマンドを末尾で実行するためのファイル。systemd時代には使われるケースが減っています。
- telinit
- ランレベルを切り替えるコマンド。SysV init環境でよく使われます。
- runlevel
- 現在の実行レベルを示す番号。確認・変更の際に用いられます。
- runlevels
- 複数の実行レベルの集合(0~6など)
- 0
- 停止(halt)時のランレベル。
- 1
- シングルユーザーモード。
- 2
- ディストリビューション依存のマルチユーザモード、ネットワークが未起動のことが多い。
- 3
- テキストモードのマルチユーザモード。
- 4
- 未使用またはユーザー定義のランレベル。
- 5
- グラフィカルログインを想定したランレベル(ディストリビューション依存)。
- 6
- 再起動時のランレベル。
- single-user
- シングルユーザーモード。緊急時の保守など、最小限の機能で動作するモード。
- multi-user
- 複数ユーザーが同時利用できる通常運用モードのこと。
- graphical
- グラフィカルインターフェースを前提としたモード。
- systemd
- 現代の主流 initシステム。runlevelの代わりにtargetsを用い、互換性として一部にSysVの機能も提供します。
- target
- systemdの起動状態を表す単位。runlevelの代替として機能します。
- graphical.target
- GUIログインを有効にするsystemdターゲット。
- multi-user.target
- GUIなしで複数ユーザーをサポートするsystemdターゲット。
- default.target
- systemdのデフォルト起動ターゲット。
- /etc/inittab
- SysV initの設定ファイルのパス。古い環境で使われます。
- 起動スクリプト
- 各サービスを起動・停止させるためのスクリプト群。
- サービス
- 起動時に管理・自動起動されるデーモンやプログラムの総称。
- デーモン
- バックグラウンドで動作する長寿命プロセス。
- ブート
- 電源を入れてOSが起動を開始する過程全体。
- シャットダウン
- システムを安全に停止させる手順・処理。
- init 3
- ランレベル3へ移行するコマンド。通常はテキストモードの運用を想定。
- init 5
- ランレベル5へ移行するコマンド。通常はグラフィカルモードを想定。
- PID 1
- 最初に起動するプロセスのID。システム全体の起動を司る親プロセス。
runlevelの関連用語
- runlevel
- SysVinit におけるシステムの実行モードを示す概念。0-6 の整数と 's' が使われ、現在の状態を表します。
- SysVinit
- 伝統的な init 系の実装。runlevel によって起動・停止時の動作を切り替えます。
- init
- SysVinit の実行ファイル。現在の runlevel を変更したり起動処理を管理します。
- telinit
- init と同等の機能を持つコマンド。runlevel の変更を指示します。
- systemd
- 現代の Linux の init システム。runlevel 概念を targets で表現し、後方互換性として runlevel のサポートも提供します。
- runlevelコマンド
- 現在の runlevel と直前の runlevel を表示するコマンド。systemd では動作が異なる場合があります。
- runlevel0(停止)
- 0 はシステム停止・シャットダウンを意味する runlevel。電源を切る準備段階。
- runlevel1(単一ユーザー)
- 1 は単一ユーザーのモード。緊急時のメンテナンスなど最小限の環境。
- runlevel2(マルチユーザー・テキスト)
- 2 はネットワークを含まないマルチユーザー・テキストモード。ディストリビューション依存で差があることも。
- runlevel3(マルチユーザー・ネットワーク)
- 3 はネットワーク有効なマルチユーザー環境(多くのサーバーで標準)。
- runlevel4(未使用/任意)
- 4 はディストリビューションによって任意に設定されることが多い未使用の runlevel。
- runlevel5(グラフィカル・ログイン)
- 5 はグラフィカルログインを提供することが多い状態(GUI 起動)。
- runlevel6(再起動)
- 6 はシステムを再起動する状態。
- rescue.target
- systemd におけるシングルユーザー相当の緊急・保守モードのターゲット。
- graphical.target
- systemd の Graphical User Interface 起動状態。runlevel5 相当。
- multi-user.target
- systemd のネットワーク有効なマルチユーザー環境。runlevel3 相当。
- poweroff.target
- systemd の電源オフ時のターゲット。実質的には runlevel0 相当。
- reboot.target
- systemd の再起動時のターゲット。実質的には runlevel6 相当。



















