web-dev-qa-db-ja.com

Ubuntuのinitは何をしますか?

initがコンピューターの起動とランレベルの管理に必要な魔法のプログラムであることはすでに知っていますが、本当の目的は何ですか?

そもそもなぜinitが必要なのでしょうか?ブートローダーがUpstartに実行するプログラムと実行しないプログラムを指示できないのはなぜですか?

この質問は、私の initが削除されたらどうなりますか?質問への(遅い)応答です。

13
Kaz Wolfe

nixシステムのinitのマニュアル を参照してください。

これは initのWikipediaエントリ からの投稿です。

Unixベースのコンピューターオペレーティングシステムでは、init(初期化の略)はコンピューターシステムの起動中に開始される最初のプロセスです。 Initは、システムがシャットダウンされるまで実行を継続するデーモンプロセスです。他のすべてのプロセスの直接または間接の祖先であり、孤立したプロセスをすべて自動的に採用します。 Initは、ハードコーディングされたファイル名を使用してカーネルによって起動され、カーネルが起動できない場合、カーネルパニックが発生します。通常、Initにはプロセス識別子1が割り当てられます。

Initの設計は、System IIIやSystem VなどのUnixシステムでは、Research UnixおよびそのBSD派生物のinitによって提供される機能とは異なります。ほとんどのLinuxディストリビューションでの使用はSystem Vとある程度互換性がありますが、Slackwareなどの一部のディストリビューションはBSDスタイルを使用し、Gentooなどの他のディストリビューションには独自のカスタマイズバージョンがあります。

標準バージョンの設計上の制限に対処するために、いくつかの代替のinit実装が記述されています。これらには、launchd、Service Management Facility、systemd、およびUpstartが含まれます。後者はUbuntuやその他のLinuxディストリビューションで使用されています。

これがあなたにそれを説明するのを助けることを望みます;たくさんの読書です。

6
Mark Kirby

upstartおよびsystemdinitシステムです。慣例(およびおそらく他の制約)により、プログラムはinitまたはsystemdまたは他の何かが再生中かどうかに関係なく、upstartと呼ばれます。プロセス名にだまされてはいけません。 PID1はSysV initではなくなりました。 Ubuntuでは、かなり前からありませんでした。

3
muru