telinitコマンドでLinuxのランレベルを切り替える方法|systemdのtargetとの対応もコマンド


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドP-T, システム管理コマンド > telinitコマンドでLinuxのランレベルを切り替える方法|systemdのtargetとの対応もコマンド
「ランレベルを切り替えたいけど、telinitとinitって何が違うの?」
「CentOS 7以降でtelinitを使ったら動作が変わった気がする…」

この記事では、telinitコマンドの基本的な使い方から、systemdへの移行後における動作の変化まで実務で必要な知識を解説します。
【この記事でわかること】
・telinitコマンドはランレベル(動作モード)を切り替えるコマンド
・CentOS 7以降のsystemd環境ではsystemctl isolateが推奨される
・telinit 0(シャットダウン)・telinit 6(再起動)は今も広く使われる

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

telinitコマンドとは

telinitコマンドは、Linuxシステムのランレベル(動作モード)を切り替えるコマンドです。

SysVinit(旧来のinitシステム)環境では、initプロセスにシグナルを送ってランレベルを変更します。
実態としてはinitコマンドと同義で、telinitはinitのシンボリックリンクとして実装されていることも多いです。

ランレベルの一覧

Linuxのランレベルは以下のように定義されています。
ランレベル 動作モード
0 システム停止(シャットダウン)
1 / S シングルユーザーモード(メンテナンス用)
2 マルチユーザーモード(NFS停止)
3 マルチユーザーモード(テキストログイン)
4 未使用(カスタム用途)
5 マルチユーザーモード(グラフィカルログイン)
6 システム再起動(リブート)

telinitコマンドの基本的な使い方

書式

telinit [ランレベル]

ランレベルを3(テキストログイン)に切り替える

# 現在のランレベルを確認 $ runlevel N 5 # ランレベルを3に変更(root権限が必要) $ sudo telinit 3 # 変更後を確認 $ runlevel 5 3

runlevelコマンドの出力は「前のランレベル 現在のランレベル」の順で表示されます。

ランレベルを5(グラフィカル)に切り替える

$ sudo telinit 5

シャットダウン・再起動に使う

# システムを停止する(ランレベル0) $ sudo telinit 0 # システムを再起動する(ランレベル6) $ sudo telinit 6

systemd環境でのtelinit

CentOS 7・RHEL 7以降のsystemd環境では、telinitコマンドを実行しても、内部でsystemctlに変換されて処理されます。

systemdではランレベルの代わりに「ターゲット」を使用します。
telinitコマンド systemctl相当のコマンド
telinit 0 systemctl isolate poweroff.target
telinit 1 systemctl isolate rescue.target
telinit 3 systemctl isolate multi-user.target
telinit 5 systemctl isolate graphical.target
telinit 6 systemctl isolate reboot.target
systemd環境での動作切り替えには、以下のコマンドを直接使うのが推奨です。

# マルチユーザーモード(テキスト)に切り替え $ sudo systemctl isolate multi-user.target # グラフィカルモードに切り替え $ sudo systemctl isolate graphical.target # デフォルトのターゲットを確認 $ systemctl get-default multi-user.target # デフォルトのターゲットを変更(永続的) $ sudo systemctl set-default multi-user.target

telinit Qとtelinit q

telinitには、ランレベル数字以外にもいくつかの特殊なオプションがあります。

# /etc/inittabを再読み込みする(SysVinit環境のみ) $ sudo telinit q # 同じくinittabの再読み込み(大文字Qも同じ) $ sudo telinit Q

systemd環境ではこれらのオプションは無視されます。

本記事のまとめ

やりたいこと コマンド
ランレベルを切り替える sudo telinit [ランレベル]
システムを停止する sudo telinit 0
システムを再起動する sudo telinit 6
マルチユーザーモードに切り替え(systemd) sudo systemctl isolate multi-user.target
デフォルトターゲットを確認(systemd) systemctl get-default

ランレベルやsystemdの仕組みをもっと深く理解したいですか?

telinitやsystemctlの動作を理解するには、Linuxの起動プロセス全体を把握していることが重要です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。