Linux起動レベルとサービス管理コマンドの使い方

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 による操作は「即時」だが永続的ではない点です。

独自サービスの登録手順

  1. 起動スクリプト(例:myapp)を作成し、start/stop/restart/status をサポート
  2. スクリプトを /etc/init.d/ に配置
  3. chkconfig --add myapp で管理対象に追加
  4. chkconfig myapp on で自動起動を有効化
  5. service myapp start で即時起動

これにより、次回システム起動時にも自動的にサービスが立ち上がります。

タグ: linux chkconfig service init systemd

6月7日 22:09 投稿