AWS Linuxでcloud-init-localを実行する順序

AWS Linuxでcloud-init-localを実行する順序

新しいEC2インスタンスを作成し、作成時にインスタンスにユーザーデータを提供しようとしています。私のuserdataは、他のアプリケーション(myApplication)のプロパティファイル内のパラメータを変更するいくつかのbashコマンドを実行します。目的は、始める前にmyApplicationの設定を変更することです。 myApplication は /etc/init.d から起動するように設定されます。

基本的に説明されているタスクを実行しようとしています。ここ

/etc/init.d/cloud-init-localのchkconfig設定が優先順位50に設定されていることを確認しました。私はこれが私のuserdataスクリプトを実行するメカニズムであると仮定します。

myApplicationもchkconfigを使用して設定されますが、優先順位は90です。計画は、myApplication が開始される前にユーザーデータを実行することです。

しかし、これは私が経験したものではありません。 cloud-init-output.logファイルで、私のuserdataが実際に実行されているがmyApplicationがすでに起動していることを確認できます。

私のユーザーデータスクリプトが/etc/init.d/cloud-init-localによって実行されるという仮定は間違っていますか?起動順序の動作に関する私の予想は間違っていますか?

助けてくれてありがとう。ありがとうございます!

答え1

システムエラーが発生したようです。 (良い考えだと思います。) 特に、インポートされたsysvスクリプトの起動速度を上げるために、sysv initで無視されるLSB依存関係を構成しない限り、並列に実行されます。

この問題に対する解決策は

  1. 2つのinitスクリプトをsystemd依存関係を持つsystemdスクリプトに変換します。
  2. 両方の初期化スクリプトに依存関係を追加します。
  3. あなたよりスマートにしようとしない他の初期化システムを選択してください。

関連情報