

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
initd・とは?初心者でも分かる基本と使い方ガイド
initd は Linux や UNIX 系の OS で使われる「サービス起動スクリプト」を格納するディレクトリの名前です。主に /etc/init.d にあり、ここにはネットワークサービスやデータベース、ウェブサーバーなどを起動・停止させるための小さなシェルスクリプトが並んでいます。
ポイント:initd は「古い仕組みの名残」であり、現在は systemd が主流の多くのディストリビューションで使われることが多いですが、互換性のためにまだ残っている場合があります。
なぜ initd が重要だったのか
かつてはサーバーの起動順序を決めるために runlevel という概念を使い、サービスの起動・停止を個別に管理しました。/etc/init.d の中には、各サービスを操作するスクリプトがあり、起動時に runlevel の設定に従って自動的に動くよう設定されていました。
systemd との差異と共存
現在の多くの Linux ディストリビューションは systemd を使っています。systemd は「ユニット」という単位で管理し、/etc/init.d のスクリプトと同じ役割を持ちつつ、より高速で柔軟です。とはいえ、SysVinit の initd は今でも互換性として動くことが多く、古いスクリプトがそのまま動くよう配慮されています。
initd の基本的な使い方
基本的な操作は root 権限が必要です。代表的なコマンドは次のようになります。
サービスの開始: sudo /etc/init.d サービス名 start
サービスの停止: sudo /etc/init.d サービス名 stop
状態の確認: sudo /etc/init.d サービス名 status または service サービス名 status
自動起動の設定(Debian/Ubuntu の互換性がある場合): sudo update-rc.d サービス名 defaults
Red Hat 系の別名コマンド: chkconfig サービス名 on など
このような操作はサーバー管理の基本ですが、誤った停止や削除を行うと、アプリやサイトが動かなくなることがあります。必ず変更前に現在の状態を確認し、バックアップや適切な計画を立ててから実施しましょう。
initd の内部構成の雛形
実際の init.d スクリプトは、起動時に実行される「start」時の処理と、停止時の処理を case 文で分岐させ、終了コードを返します。以下は雛形のイメージです。
雛形の例(実際のファイルにはこのまま使えるように環境やサービスに合わせた記述が必要です):
name は サンプル、case $1 in start) echo Starting name;; stop) echo Stopping name;; restart) echo Restarting name;; *) echo Usage: name {start|stop|restart};; esac
表で見る「initd」と「systemd」の違い
| 特徴 | SysVinit(init.d) | systemd |
|---|---|---|
| 起動の考え方 | Runlevel ベース | ユニットベース |
| 設定ファイルの場所 | /etc/init.d、/etc/rc*.d | /etc/systemd/system、/lib/systemd/system |
| 管理コマンド | service サービス名 start/stop/status、/etc/init.d/サービス名 など | systemctl start サービス名.service など |
この表からも分かるように、initd は過去の仕組みを支える部品のひとつです。新しい環境では systemd の方が主流ですが、古いサーバーや互換性の観点から initd の知識はまだ役に立つ場面があります。
最後に、初心者の方へ一言。新しい仕組みを学ぶ前に、現在使っている Linux ディストリビューションの初期化システムをまず確認しましょう。コマンドやファイルの場所は distribution によって異なることがあります。公式ドキュメントや信頼できる解説サイトを併せて参照することが、失敗を防ぐ第一歩です。
initdの同意語
- SysVinit
- System V init(System V起動管理)の略。古くから使われてきた init システムで、ランレベルに基づきサービスを起動・停止します。
- init.d
- /etc/init.d などに格納される、個別サービスの起動スクリプトを指すディレクトリ名。各スクリプトは start/stop/restart などの引数を受け、サービスの起動管理を担当します。
- initスクリプト
- サービスを起動・停止・再起動するための実行スクリプト。通常は /etc/init.d に格納され、各サービスの動作を定義します。
- System V init
- SysVinit の正式名称。System V の init の仕様に基づく初期化・サービス起動管理の仕組み。
- 起動スクリプト
- サービスを起動・停止するためのスクリプトの総称。/etc/init.d 内の個別スクリプトを指すことが多いです。
- rcスクリプト
- ランレベル(Runlevel)ごとに実行される初期化スクリプト群の総称。SysVinit で使われます。
- Runlevelスクリプト
- ランレベルごとに実行されるスクリプト群。起動時の段階で実行される処理を定義します。
- サービススクリプト
- 個別のサービスを制御するスクリプト。開始・停止・再起動などの操作を提供します。
- /etc/init.d
- initd の実体が格納されるディレクトリ。サービスの起動スクリプトが集まっています。
- initシステム
- init を核とするシステム全体の起動・サービス管理機構を指す言い方。
- initレイヤー
- 起動時の段階を指す概念的な用語。段階ごとに処理が分かれることを示します。
initdの対義語・反対語
- systemd
- 現代のinitシステムの代表格。SysVinitのような init.d ディレクトリ中心の作法に対する新世代の代替で、ユニットファイル(service/unitなど)でサービスを管理し、並列起動・依存性解決・ジャーナル(ログ)機能などを提供します。初心者には設定がユニット単位で整理され、起動プロセスの可視性が高い点が特徴です。
- Upstart
- イベント駆動型のinitシステム。主に過去にUbuntuなどで採用されましたが、現在はsystemdへ移行が進んでいます。init.dのスクリプト中心の運用とは異なり、イベントに応じてサービスを起動・停止する設計が特徴でした。
- OpenRC
- 依存関係ベースの起動を行う軽量なinitシステム。SysVinit風のスクリプトと互換性を維持しつつ、並列起動や依存性解決を重視します。小規模な環境やリソース制約のある環境で選択されることがあります。
- SysVinit
- 従来型のinitシステム。/etc/inittabや/etc/rc?.dなどを用い、スクリプトベースでサービスを管理します。init.dはこの系統のスクリプト群の一部であり、現代的なsystemdとは対照的な古典的な方式として捉えられることが多いです。
- rc.local
- 起動時に任意のコマンドを実行するための単純な手段。自動起動の管理という意味ではsystemdのユニットとは異なる“手動寄りの追加実行”の考え方に近く、現代の自動起動管理と比較すると対照的な使われ方をします。
initdの共起語
- SysVinit
- 古い init システム。/etc/init.d にサービスの起動スクリプトを配置し、runlevel により起動順序を制御する方式です。
- /etc/init.d
- サービスの起動スクリプトが格納されるディレクトリです。
- init.d
- init.d の略。SysVinit で使われる起動スクリプト群を指す一般的な呼び方です。
- systemd
- 現代の init システム。ユニットファイルでサービスを管理し、systemctl で制御します。
- systemctl
- systemd の制御コマンド。サービスの開始・停止・再起動などを行います。
- サービス
- 起動・停止・監視の対象となるプログラムの総称です。
- 起動スクリプト
- サービスを起動するための実行スクリプトのことです。
- rc.d
- rc.d ディレクトリ。実行レベルごとの起動・停止リンクが格納されます。
- /etc/rc?.d
- 実行レベルごとに作成される S(K)リンクが入るディレクトリのパターンです。
- /etc/rc.d/rc?.d
- Red Hat 系の実行レベル別リンクの格納場所です。
- rc.local
- 起動の最後に実行されることがある任意のスクリプトファイルです(環境により未使用)。
- Sリンク
- 起動時に実行されるスクリプトのリンクで、Sから始まるファイル名が多いです。
- Kリンク
- 停止時に実行されるスクリプトのリンクで、Kから始まるファイル名が多いです。
- runlevel
- SysVinit で定義される動作モード。0〜6 の数字で表します。
- 0-6
- 代表的な実行レベルの番号。0は停止、3/5が通常運用、6は再起動など。
- update-rc.d
- Debian系で /etc/rc?.d のリンクを設定するコマンドです。
- chkconfig
- Red Hat系で /etc/rc.d/rc?.d のリンクを設定するコマンドです。
- LSB init script
- LSB 規格に準拠した init スクリプト。ヘッダ情報で動作条件を記述します。
- LSB
- Linux Standard Base の略。init スクリプトの標準仕様を含みます。
- Default-Start
- LSB ヘッダにある起動レベルの指定。どの runlevel で起動するかを示します。
- Default-Stop
- LSB ヘッダにある停止条件の指定。
- 依存関係
- init スクリプト間の起動順序や依存性を記述する要素です。
- PIDファイル
- サービスの実行中のプロセスIDを記録するファイルです。
- サービス名
- 起動対象のアプリケーション名を指します。
- start/stop/restart
- サービスを開始・停止・再起動する基本操作です。
- reload
- 設定変更後に設定を反映させる再読み込み操作。全てのサービスで対応しているわけではありません。
- daemon
- バックグラウンドで動作する長時間稼働のプログラムを指します。
- 互換性
- systemd と SysVinit との間に互換性が提供されることがあります(SysV 互換モード等)。
- initコマンド
- SysVinit の実行レベルを切り替えるコマンドです(例: init 3)。
- 起動順序管理
- 複数のサービスが同時に起動する場合に順序を決めること。
- サービス管理
- サービスの監視・制御・設定を指す総称です。
- LSB Header
- LSB 規格のヘッダ情報。Default-Start、Default-Stop などが含まれます。
initdの関連用語
- init.d
- SysV init 系のサービス起動スクリプトが格納されるディレクトリ。/etc/init.d にあり、各スクリプトはサービスの start/stop/restart を実行します。
- SysV init
- 古典的な UNIX 系の起動管理システム。ランレベルごとに起動するサービスを決定し、/etc/init.d のスクリプトと /etc/rc*.d のリンクで制御します。
- initスクリプト
- /etc/init.d に置かれる実行可能なスクリプト。サービスの開始・停止・再起動を実装し、LSB ヘッダが付くこともあります。
- ランレベル
- システムの運用モードを表す番号。0〜6 の範囲で、各レベルで起動するサービスが異なります。例: runlevel 3 は多ユーザーモード。
- rc?.d ディレクトリ
- /etc/rc0.d などランレベルごとのディレクトリ。S で開始、K で停止を指示するシンボリックリンクが並びます。
- S/K シンボリックリンク
- ランレベル時の起動順序を決めるリンク。S は開始用、K は終了用で、番号が起動/停止の順序を決めます。
- update-rc.d
- Debian/Ubuntu 系で init.d のスクリプトを rc*.d へ自動的に登録/削除するコマンド。
- chkconfig
- Red Hat/CentOS などでサービスの自動起動設定を管理するツール。ランレベル別の on/off を設定します。
- LSB Init Script
- LSB(Linux Standard Base)準拠の init スクリプト。Provide/Required-Start などのメタ情報を含み、他のツールと互換性を高めます。
- LSB Init Info
- init スクリプトのヘッダ情報(### BEGIN INIT INFO ... で囲む部分)。Provide、Required-Start、Default-Start、Default-Stop などを記述します。
- service コマンド
- SysV init スクリプトを手軽に操作するためのコマンド。start/stop/restart などを実行します。
- systemd
- 現在主流の init システム。ユニット(サービス・ソケット・ターゲットなど)を管理し、並列起動と依存解決を行います。SysV 互換モードもあります。
- systemctl
- systemd のコントロールコマンド。サービスの開始・停止・状態確認・設定の適用などを行います。
- unit
- systemd が管理する設定単位。サービスユニット、ソケットユニット、ターゲットユニットなどがあります。
- Upstart
- systemd 導入前に使われた起動管理システム。Ubuntu の古いバージョンなどで用いられました。
- rc.local
- 起動時に最後に実行される任意のスクリプトを置く古いファイル。現在は推奨されないことが多いですが互換性目的で残っています。
- デーモン
- バックグラウンドで動作する長寿命のプロセス。init/systemd によって起動されることが多いです。
- PID 1
- カーネル起動後に最初に起動するプロセス。全プロセスの親となり、systemd や古い SysV init がこれを担います。



















