起動時にスクリプトを特定のランレベルにどのようにリンクできますか?

起動時にスクリプトを特定のランレベルにどのようにリンクできますか?

ランレベルがどのように機能するかを理解しようとしています。私は7つのランレベルが何を意味するのかを理解しており、通常はを呼び出して構成される/etc/inittabことを知っています。/etc/init.d/rc呼び出し自体はさまざまなスクリプトを呼び出して、さまざまなランレベルと動作を構成します。

Ubuntuサーバーシステム(12.04)を使用しているので、ファイルは廃止されましたが、inittabスクリプト/etc/initはディレクトリにあります。

それでは、起動時にスクリプトを実行したいとします(アプリケーションの起動など)。通常私は/etc/init.d/rc.localファイルを編集します。

私の質問は次のとおりです。このファイルを編集すると、このスクリプトは実行されますか?すべてランレベル?

たとえば、スクリプトが実行レベル5でのみ機能するようにするには、/etc/rc5.d/そのフォルダにスクリプトを配置する必要がありますか?それとも別の方法がありますか?

答え1

Ubuntuではこれをこう呼びます。突然現れる。私はあなたが読むことを提案しますレシピ、特定の(擬似)ランレベルで実行されるスクリプトを生成する方法について説明します。

「System V」初期化システムに言及しています。アイデアは、仕事が同時に始まるようにすることです。ぜひご覧ください。instance新機能。

答え2

まあ、これは私が見つけたものです:

/etc/init最新のUbuntuバージョンは、スクリプトが実行される必要がある実行レベルを設定するために、ディレクトリ内の特定の設定ファイルを使用するupstart(@polemonが正しく指摘したように)を使用します。 Upstart は upstart 作業ファイルを/etc/initそのフォルダに入れ、通常の init スクリプトを/etc/init.d/etc/rc*.dフォルダに入れて、実際に実行できます。

upstartを使用していないシステム/etc/init.d/etc/rc*.d。この場合、ランレベルはそのフォルダのスクリプトにシンボリックリンクを追加することによって設定されます/etc/rc*.d

また、明らかにrc.localマルチユーザー実行レベルでスクリプトを実行します。

関連情報