「CentOS 7以降でtelinitを使ったら動作が変わった気がする…」
この記事では、telinitコマンドの基本的な使い方から、systemdへの移行後における動作の変化まで実務で必要な知識を解説します。
・telinitコマンドはランレベル(動作モード)を切り替えるコマンド
・CentOS 7以降のsystemd環境ではsystemctl isolateが推奨される
・telinit 0(シャットダウン)・telinit 6(再起動)は今も広く使われる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
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
ランレベルを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 |
# マルチユーザーモード(テキスト)に切り替え $ 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
本記事のまとめ
| やりたいこと | コマンド |
|---|---|
| ランレベルを切り替える | 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日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます