Linuxの/etc/inittabとは?設定方法と役割を詳しく解説

Linuxのシステム管理を学ぶうえで、/etc/inittab は重要なファイルの一つです。特に、SysVinit を採用しているLinuxディストリビューションでは、システムのランレベルや起動プロセスを定義する役割を担っています。

しかし、近年のLinuxでは systemd への移行が進み、/etc/inittab は多くの環境で使われなくなりました。それでも、古いシステムの管理や、伝統的なLinuxの仕組みを理解するうえで、/etc/inittab の知識は今でも重要です。

本記事では、/etc/inittab の基本構造、役割、設定方法、そして現代のLinuxにおける代替手段まで詳しく解説 していきます。

/etc/inittabとは?

/etc/inittab は、LinuxのSysVinit (System V Init) における主要な設定ファイルで、システムの起動プロセスやランレベルの管理 を担っています。

主な役割

  • システムの デフォルトのランレベル を決定する
  • ランレベルごとに実行するスクリプトやプロセスを定義する
  • getty (仮想端末の制御) の設定を行う
  • シャットダウンや再起動の動作を管理する

使用されていたLinuxディストリビューション

/etc/inittab は、以下のような SysVinit ベースのLinuxディストリビューション で利用されていました:

  • Red Hat Enterprise Linux 5 以前
  • CentOS 5 以前
  • Debian 6 以前
  • Slackware (現在もSysVinitを使用)
  • その他の古いUNIX系OS

しかし、現在は多くのディストリビューションが systemd に移行しており、/etc/inittab はほぼ廃止されています。


/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:デフォルトのランレベルは3
  • si::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 で使われる主要なアクション

/etc/inittab では、以下のような アクション (動作指定) を使って、システムの挙動を制御します。

アクション説明
initdefaultシステムのデフォルトのランレベルを設定
sysinitシステム初期化時に実行
waitランレベル変更時に1回だけ実行
respawn終了しても再起動するプロセス (getty など)
onceランレベル変更時に1回だけ実行
ctrlaltdelCtrl + Alt + Del の処理を定義
powerfail停電など電源障害時に実行

runlevel コマンドで現在のランレベルを確認する

現在のランレベルを確認するには、以下のコマンドを実行します。

bashコピーする編集するrunlevel

出力例

mathematicaコピーする編集するN 3

この場合、現在のランレベルは 3 であることがわかります。


systemd への移行と /etc/inittab の代替方法

現在、多くの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 の基本的な仕組みと現代の代替手段について理解を深めていただけたら幸いです。

タイトルとURLをコピーしました