Linuxのシステム管理を学ぶうえで、/etc/inittab
は重要なファイルの一つです。特に、SysVinit を採用しているLinuxディストリビューションでは、システムのランレベルや起動プロセスを定義する役割を担っています。
しかし、近年のLinuxでは systemd への移行が進み、/etc/inittab
は多くの環境で使われなくなりました。それでも、古いシステムの管理や、伝統的なLinuxの仕組みを理解するうえで、/etc/inittab
の知識は今でも重要です。
本記事では、/etc/inittab
の基本構造、役割、設定方法、そして現代のLinuxにおける代替手段まで詳しく解説 していきます。
/etc/inittab
は、LinuxのSysVinit (System V Init) における主要な設定ファイルで、システムの起動プロセスやランレベルの管理 を担っています。
getty
(仮想端末の制御) の設定を行う/etc/inittab
は、以下のような SysVinit ベースのLinuxディストリビューション で利用されていました:
しかし、現在は多くのディストリビューションが systemd に移行しており、/etc/inittab
はほぼ廃止されています。
/etc/inittab
の構成は、各行ごとに 4つのフィールド で構成されています:
makefileコピーする編集するID:ランレベル:アクション:プロセス
フィールド | 説明 |
---|---|
ID | 一意の識別子 |
ランレベル | このエントリが適用されるランレベル |
アクション | 実行のタイミング |
プロセス | 実行するコマンド |
以下は、典型的な /etc/inittab
の例です:
rubyコピーする編集するid:3:initdefault:
si::sysinit:/etc/init.d/rcS
l3:3:wait:/etc/init.d/rc 3
1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3
解説
id:3:initdefault:
→ デフォルトのランレベルは3si::sysinit:/etc/init.d/rcS
→ システム起動時に/etc/init.d/rcS
を実行l3:3:wait:/etc/init.d/rc 3
→ ランレベル3で/etc/init.d/rc 3
を実行1:2345:respawn:/sbin/getty 38400 tty1
→ ランレベル2,3,4,5でtty1
を提供/etc/inittab
では、以下のような アクション (動作指定) を使って、システムの挙動を制御します。
アクション | 説明 |
---|---|
initdefault | システムのデフォルトのランレベルを設定 |
sysinit | システム初期化時に実行 |
wait | ランレベル変更時に1回だけ実行 |
respawn | 終了しても再起動するプロセス (getty など) |
once | ランレベル変更時に1回だけ実行 |
ctrlaltdel | Ctrl + Alt + Del の処理を定義 |
powerfail | 停電など電源障害時に実行 |
現在のランレベルを確認するには、以下のコマンドを実行します。
bashコピーする編集するrunlevel
出力例
mathematicaコピーする編集するN 3
この場合、現在のランレベルは 3 であることがわかります。
現在、多くのLinuxディストリビューションは SysVinit から systemd へ移行 しています。
そのため、新しい環境では /etc/inittab
の代わりに systemd のターゲット(target) を使用します。
bashコピーする編集するsystemctl get-default
例:マルチユーザーモード (旧ランレベル3) に変更
bashコピーする編集するsudo systemctl set-default multi-user.target
bashコピーする編集するsystemctl list-units --type=target
/etc/inittab
は、SysVinit ベースのLinuxシステムでシステムの起動プロセスを管理する設定ファイル でした。
現在は systemd へ移行 しているため、新しい環境では ターゲット(target) を使用して管理します。
しかし、古いシステムの管理やSysVinitの理解 は、Linuxを深く学ぶうえで重要な知識のひとつです。
特に、レガシーな環境や組み込みLinuxの開発現場では、今でも /etc/inittab
が使われている場合があります。
本記事を通じて、/etc/inittab
の基本的な仕組みと現代の代替手段について理解を深めていただけたら幸いです。