回答:
Upstartは、従来のinit.dスタイルのSystem-V起動スクリプトの代替です。ただし、upstartは単なる起動スクリプトのコレクションではありません。実際には、さまざまなデーモンの開始を綿密に計画および制御できます。たとえば、ネットワークドライブを自動マウントするには、最初に動作中のネットワークが必要です。スタートアップの前にこれらの状況はしばしば競合状態を引き起こしましたが、スタートアップの宣言には実行中のネットワークの前提条件を含めることができます。
実際のところ、Upstartはイベント監視システムに基づいています。特定のハードウェア状態が発生するか、別のプロセスがイベントを送信すると、1つ以上のupstartsスクリプトがトリガーされる場合があります。これにより、USBスティックの挿入または取り外し時に特定のアクションが自動的にトリガーされます。
すべての主要なLinuxディストリビューションは、System-V initを段階的に移行していくと信じています。実際、新興企業は従来のinitスクリプトの開始をトリガーすることもできるため、移行を一度に行う必要はありません。
Upstartは、/ sbin / initデーモンのイベントベースの置換であり、ブート中のタスクとサービスの開始を処理し、シャットダウン中にそれらを停止し、システムの実行中にそれらを監視します。
SysVブートプロセスは完全に同期しています。物事は一度に起こり、現在のタスクが完了するまで将来のタスクをブロックします。起動プロセスに時間がかかる場合は、他のすべてが待機する必要があります。さらに、タスクは、initデーモンの状態が変化したとき(マシンの電源がオンまたはオフになったときなど)にのみ実行されます。
Upstartは新しいinitデーモンで、バルクランレベルではなくイベントに応じてサービスを開始できます。/ etc / initディレクトリ内の各ジョブファイルは、サービスの起動またはシステム初期化の特定のコンポーネントを担当します。固定されたシーケンスはありません。代わりに、各ジョブは反応するイベントを指定します。イベントが発生すると、Upstartはこのイベントを待機していたすべてのジョブを並行して開始します。
理論的には、システムが稼働した後でも使用できます。Upstartは最終的に、サムドライブなどの外部デバイス(現在はudevとhalによって処理されている)、または特定の時間にプログラムを実行(現在cronによって処理されている)などのタスクを引き継ぐ予定です。
UpstartはもともとUbuntuディストリビューション用に開発されましたが、由緒あるSystem-V initの代わりとして、すべてのLinuxディストリビューションでの展開に適していることを意図しています。