2017-08-28 10 views
1

私は新しく、構成管理ツールを使用して複数のec2インスタンスを設定しようとしていました。ec2 instansesで安全なシェルスクリプトから永久ノードタスクを実行

私はそれを実行することができました。しかし、私は愚か者の端で立ち往生しています。私はさらに、すなわちその中にタスクを持っているシェルスクリプト(脚本によって実行されるように)している:

forever start app.js 
forever start serverScripts.js 

スクリプトが実行さんが、アプリは永遠でインスタンス化されていません。私は永遠にそれが

を示しリストないとき

「いいえ永遠に実行していないプロセス」が、ノードのプロセスはバックグラウンド(下記参照)で実行されません。

ルート9725 65.0 6.1 933920 125432?

- name: Execute the script 
    command: sh {{ path }}/developmentProcessScript.sh 

親切にまったく同じ方法で、スクリプトの実行を達成するために私を導く:SL 17時35分午後12時02分 は/ usr/binに/ nodejsは脚本に使用

コマンドをapp.js永遠に!

+0

あなたのプレイブックをどのユーザーとして実行していますか?そのユーザーとして「永遠のリスト」を実行しようとすると永遠のプロセスが見えますか?あなたのプレイブックとあなたがプレイブックを呼び出すために使用しているコマンドを含めることはできますか? – kfreezy

+0

rootとして実行しています。はい、私はそれを永久に正常に実行されるサーバー上で手動で実行します。 –

+0

これはおそらく役立ちます:https://immortal.run/post/ansible/ – nbari

答えて

0

forever listを使用して永遠のプロセスを表示するには、起動したユーザーと同じユーザーとして実行する必要があります。この場合はルートです。

sudo su - root -c "forever list" 

別のユーザーとして実行するように永遠にしたい場合は、あなたの脚本内部の何か他のものにbecome_userを設定します。

- name: Execute the script 
    command: sh {{ path }}/developmentProcessScript.sh 
    become_user: some_other_user 
関連する問題