【 init 】コマンド/【 systemctl 】コマンド――CUI/GUIモードを切り替えるLinux基本コマンドTips(5)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「init」コマンドと「systemctl」コマンドです。

» 2016年03月25日 05時00分 公開
[西村めぐみ@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、CUI(Character User Interface)/GUI(Graphical User Interface)などのシステムモードの切り替えに使える「init」コマンドと「systemctl」コマンドです。

initコマンドとは?

 initは全てのプロセスの“親”となるコマンドで、プロセスを制御する他、OS全体の動作モードを示す「ランレベル」を変更することができます。Linuxカーネルはメモリに読み込まれるとデバイスなどのチェックを行い、initを起動します。initは「/etc/inittab」に従いさまざまなプロセスを起動します。

initコマンドの書式

init ランレベル(0〜6で指定)

※管理者権限で実行する必要があります


ランレベル 動作モード
0 halt(停止)
1 シングルユーザーモード
2〜5 マルチユーザーモード
6 reboot(再起動)

 ランレベル「2」〜「5」が通常の起動モードで、システム設定によってネットワークの有無を切り替えたり、X Window Systemを使用するかどうか(GUIにするかどうか)を切り替えたりします。

initの主なオプション

 initコマンドのオプションは次の通りです。

オプション 意味
-t 秒数 実際に動作を始めるまで(シグナルを送るまで)の時間を指定
※実際に動作しているのがsystemdの場合、このオプションは使用できません

systemctlコマンドとは?

 昨今のLinuxでは、initに代わって「systemd」というシステムが導入されています。systemdシステムでは、各種サービスを「ユニット」単位で管理することができます。ここで使われているがsystemctlコマンドです。

 従来は“initコマンドでランレベルを変更”のように知られていた操作も、現在は「シンボリックリンク」として残っているのみで、実際にはsystemctlコマンドが使われています。

 また、従来は「reboot」コマンドや「shutdown」コマンドで実行していた再起動/シャットダウン操作も、現在はsystemctlコマンドが使用されています([参考]rebootコマンドとpoweroffコマンドの実体)。

systemctlコマンドの書式

systemctl [オプション] コマンド

※[ ]は省略可能な引数を示しています


コマンド(動作モード関連) 内容
get-default ターゲット デフォルトのモードを確認する
set-default ターゲット デフォルトのモードを変更する
isolate ターゲット 現在のモードを変更する
default デフォルトのモードにする
rescue レスキューモードに入る
emergency 緊急モードに入る
halt シャットダウンして終了する
poweroff シャットダウンして電源オフ
reboot シャットダウンして再起動する
suspend,hibernate,hybrid-sleep 休止モードに入る

systemctlコマンドの主なオプション

 systemctlコマンドのオプションは次の通りです。

オプション 意味
--no-wall 他のモードに入る際にログイン中の他のユーザーにメッセージを表示しない


initコマンドでCUIモード/GUIモードを切り替える(CentOS)

 CentOS(Red Hat系システム)の場合は、initコマンドでCUI/GUIの動作モードを切り替えることができます。

コマンド実行例

init 3:CUIモードにする

init 5:GUIモードにする

(即座に切り替わるので実行画面はありません。管理者権限で実行する必要があります)


 なお、GNOME環境など、GUI用のソフトウェアがインストールされていない場合は、「init 5」コマンドを実行してもグラフィカルモードには切り替わりません。

 また、UbuntuでGUI環境からCUI環境に切り替えたい場合は、[Ctrl]+[Alt]+[F1](F1〜F6)キーを使うとよいでしょう。[Ctrl]+[Alt]+ファンクションキーは、仮想コンソールを切り替えるためのキー操作になります。[Ctrl]+[Alt]+[F7]キーで元のモードに戻ることができます。



systemctlコマンドでCUIモード/GUIモードを切り替える

 systemctlコマンドは「systemctl コマンド」という実行スタイルで、システム関連のさまざまな操作を行います。現在の動作モードを切り替える場合は、「isolate」コマンドを使います。

 動作モードはinitコマンドのランレベルのような数字ではなく、“ターゲット”で表します。CUI環境はいわば複数ユーザーでログインできる通常モードということで「multi-user.target」、GUI環境は「graphical.target」という名前が付いています。

コマンド実行例

systemctl isolate multi-user.target:CUIモードにする

systemctl isolate graphical.target:GUIモードにする

systemctl default:デフォルトのモード(起動時のモード)にする

(管理者権限で実行する必要があります)


コマンド(ターゲット) 動作モード
rescue.target レスキューモード
emergency.target 緊急モード
multi-user.target CUIモード
graphical.target GUIモード

systemctlコマンドでデフォルトのモードを変更する

 システム起動時の動作モードを変更したい場合は、「set-default」コマンドを使用します。また、現在の設定は「get-default」コマンドを使い、「systemctl get-default」で確認することができます(画面1)。

コマンド実行例

systemctl get-default:デフォルトのモード(起動時のモード)にする

systemctl set-default multi-user.target:デフォルトをCUIモードにする

systemctl set-default graphical.target:デフォルトをGUIモードにする

(set-defaultは管理者権限で実行する必要があります)


画面1 画面1 「systemctl get-default」で現在のモードを確認し、「systemctl set-default」で起動モードを変更している

systemctlコマンドでレスキューモードや緊急モードに入る

 「レスキューモード」は、どうしても終了しないプロセスがあるなどの状況でシステムを修復する場合に使うモードです。「シングルユーザーモード(init 1)」とほぼ同等ですが、システムの設定によってはネットワークシステムを使う、使わないなどの違いがあるかもしれません。

コマンド実行例

systemctl rescue

(管理者権限で実行する必要があります)


 レスキューモードにも入れない場合は、「緊急モード」を使用します。

コマンド実行例

systemctl emergency

(管理者権限で実行する必要があります)


 それぞれ、レスキューモードの「systemctl isolate rescue.target」、緊急モードの「systemctl isolate emergency.target」とほぼ同じ動作ですが、isolateコマンドを使う場合と異なり、ログインしている他のユーザーに対し「The system is going down to rescue mode NOW!」などのメッセージを送信します。


ランレベルとターゲット

 systemctlコマンドでは「systemctl isolate runlevel3.target」のように、initで使用されていたランレベルでも実行できるようになっています。それぞれシンボリックリンクとなっており、各ターゲットとの対応は「ls」コマンドで確認できます(画面2)。

ls -l /usr/lib/systemd/system/runlevel*.target


画面2 画面2 「/usr/lib/systemd/system/」にある「runlevel」から始まる名前のファイルを一覧表示している

 他にもたくさんあるので、興味がある方は「ls -l /usr/lib/systemd/system/*.target」で表示して見ると面白いかもしれません。


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。