Linux init コマンド

Linux 命令大全Linux コマンド大全


init コマンドとは

initLinuxシステムの中で最も重要なプロセスの一つであり、システム起動後にカーネルによって作成される最初のユーザー空間プロセス(PID=1)です。システム内の他のすべてのプロセスの起動と管理を担当します。

主な特徴

  • プロセス管理:すべてのプロセスの親プロセスとして
  • ランレベル制御:システムの異なる実行状態を管理
  • サービス管理:システムサービスの起動と停止
  • システム初期化:起動スクリプトと設定の実行

init コマンドの基本構文

init [运行级别]

ランレベルの説明

Linuxシステムは7つの標準ランレベルを定義しています:

ランレベル 説明 典型的な用途
0 シャットダウン システムのシャットダウン状態
1 シングルユーザーモード システムメンテナンス/root権限
2 マルチユーザーモード(NFSなし) 基本マルチユーザーモード
3 完全なマルチユーザーモード 標準のコマンドラインインターフェース
4 予約 ユーザー定義
5 グラフィカルインターフェースモード GUI付きマルチユーザーモード
6 再起動 システムの再起動

init コマンドの実際の使い方

1. 現在のランレベルを確認する

例

who -r
# または
runlevel

2. ランレベルの切り替え

例

init 3  # マルチユーザーコマンドラインモードに切り替え
init 5  # グラフィカルインターフェースモードに切り替え
init 0  # シャットダウン
init 6  # システムを再起動

3. 緊急時の対応

例

init 1  # シングルユーザーメンテナンスモードに入る(root権限が必要)

現代Linuxシステムにおけるinitの変遷

1. System V init

従来の初期化システム。/etc/inittab設定ファイルを使用

例

# 典型的なinittabエントリの例
id:3:initdefault:  # デフォルトのランレベル
si::sysinit:/etc/rc.d/rc.sysinit  # システム初期化スクリプト

2. Upstart(Ubuntuの初期バージョンで使用)

イベント駆動型のinitシステム

3. systemd(現代の主流ディストリビューション)

例

systemctl isolate multi-user.target  # init 3に相当
systemctl isolate graphical.target  # init 5に相当

実践演習

演習1:ランレベル切り替え実験

グラフィカルインターフェースからコマンドラインモードに切り替える

init 3

サービスの変化を確認した後、グラフィカルインターフェースに戻す

init 5

演習2:システムメンテナンスモード体験

シングルユーザーモードに入る

init 1

ファイルシステムチェックを実行する

fsck /dev/sda1

注意事項

  1. 権限要件:initコマンドは通常root権限が必要です
  2. 慎重に使用:init 0やinit 6を直接使用すると、保存されていないデータが失われる可能性があります
  3. システムの違い:ディストリビューションによって異なるinit実装がある場合があります
  4. サービスへの影響:ランレベルを切り替えると、関連サービスが停止/起動されます

よくある質問と回答

Q:システムに/etc/inittabファイルがないのはなぜですか?
A:systemdを使用するシステムではinittabは不要になり、設定方法が変更されました

Q:デフォルトのランレベルを設定するにはどうすればよいですか?
systemdシステムの場合:

systemctl set-default multi-user.target  # 相当于运行级别3

Q:initコマンドとshutdownコマンドの違いは何ですか?
どちらも最終的にはシャットダウンしますが、shutdownには遅延シャットダウンやブロードキャスト通知などのより多くのオプションがあります

Linux 命令大全Linux コマンド大全

その他の拡張