web-dev-qa-db-ja.com

Linuxに初期化を並行して起動させることはできますか?

ドライバーやサービスなど(これらすべてのジョブはLinuxが起動時に行うこと)を順番にではなく並行して初期化できるかどうか疑問に思いました。積極的に起動時間を短縮したい。一部のサービスは相互に依存していることは知っていますが、簡単な例を挙げると、ネットワークデバイスのプローブ中に、ネットワークの準備ができるまで10秒間待つのではなく、オーディオも処理する必要があります。

systemdInitNGのような概念を聞いたことがありますが、他の方法が必要だと確信しています。カーネル自体がこのように起動するためのオプションやフラグはありませんか?

2
user3085931

/etc/init.d/rcCONCURRENCY変数を見てください。いくつかの選択肢があります。
makefileに設定すると、initプロセスはそれを並行して実行します。

ディストリビューションに応じて異なるコメントがあります。

#
#make likebootingを使用できるかどうかを確認します。 
#insservパッケージを有効にする必要があります。ブートの同時実行性には、
#startparをインストールする必要もあります。
#
 CONCURRENCY = makefile 
#同時init.dスクリプトを有効にするために使用するメソッドを指定します。
#有効なオプションは「none」と「makefile」です。以前に使用された廃止されたオプション
#は、「Shell」と「startpar」です。廃止されたoptions 
#は、2010-05-14以降の「makefile」のエイリアスです。デフォルトのsince 
#同じ日付は 'makefile'です。これは、Debianのinit.dスクリプトが現在
#に依存関係情報を含み、この
#情報を使用して順序付けられているためです。依存関係ベースの
#ブートシーケンスについては、insservを参照してください。
#CONCURRENCY = makefile 
 CONCURRENCY = none 

initスクリプトの行も参照してください。

eval "$(startpar -p 4 -t 20 -T 3 -M $ 1 -P $ previous -R $ runlevel)"

man startparも参照してください

Timoからの良いヒント: Bootchart パッケージを使用すると、ブートプロセスを視覚化できます。

良い読み物: initSysVHistory

[編集]

ブートチャートを使用するのは難しいことが多いので、ここにハウツーを示します。

Bootchart Micro Howto

  • インストールするapt-get install bootchart2 pybootchartgui
  • リブート
  • グラブプレスの起動画面で e 編集用。次に、カーネルブートパラメータを含む行を見つけて、init=/sbin/bootchartdを追加します。
  • 押す F10 ブート用
  • oSが起動して実行されたら、ターミナルウィンドウを開き、Sudo pybootchartguiを実行します。
  • bootchart.pngは作業ディレクトリにあります
3
user55518