Linuxシステムは起動時に6つのランレベル(実行レベル)に分かれ、それぞれ異なる動作モードを提供します。
- レベル0:システムをシャットダウン
- レベル1:シングルユーザーモード(メンテナンス用)
- レベル2:ネットワークなしのマルチユーザーテキストモード
- レベル3:ネットワークありのマルチユーザーテキストモード(サーバー用途に一般的)
- レベル4:未使用(カスタム用途に予約)
- レベル5:GUI付きマルチユーザーモード(デスクトップ環境)
- レベル6:システム再起動
デフォルトの起動レベルは /etc/inittab ファイルで確認可能です。個人用マシンではレベル5、サーバー環境ではレベル3がよく使われます。
現在のランレベルを確認するには、端末で runlevel コマンドを実行します。
chkconfig の基本操作
chkconfig は、サービスの自動起動設定を管理するためのツールです。即時起動ではなく、次回以降の起動時に有効になる点に注意が必要です。
chkconfig --list # 全サービスの各レベルでの起動状態を表示
chkconfig --list nginx # nginxサービスの起動状態のみ表示
chkconfig --add nginx # nginxを管理対象に追加
chkconfig --del nginx # nginxの管理対象から削除
chkconfig --level 2345 nginx on # レベル2〜5でnginxを自動起動に設定
引数なしで実行するとヘルプが表示されます。on/off/reset を指定すると、対象サービスの起動設定を変更できます。reset は全レベルに対して初期化を行います。
service コマンドとの違い
service は即時サービス操作(開始・停止・再起動)を行うコマンドです。これは /etc/init.d/ 内のスクリプトを直接呼び出すラッパーです。
service nginx start # 即時起動
service nginx stop # 即時停止
service nginx status # 状態確認
重要なのは、chkconfig による設定は「次回起動時」に反映され、service による操作は「即時」だが永続的ではない点です。
独自サービスの登録手順
- 起動スクリプト(例:
myapp)を作成し、start/stop/restart/statusをサポート - スクリプトを
/etc/init.d/に配置 chkconfig --add myappで管理対象に追加chkconfig myapp onで自動起動を有効化service myapp startで即時起動
これにより、次回システム起動時にも自動的にサービスが立ち上がります。