2016-06-24 12 views
2

VMのプロビジョニング中、バックグラウンドで実行するジョブを開始したいと考えています。このジョブは、特定のファイルが変更されたかどうかを継続的にチェックします。私は、コマンドラインで直接これを実行すると、ジョブが作成されプロビジョニング中に連続バックグラウンドジョブを作成する

nohup sh -c 'while true; do sleep 3; echo x; done' & 

、どのI:私は次の行が含まれたスクリプト(エコーが、何もしない3秒ごとに「×」)を参照放浪ファイルでジョブを使用して確認できます。私はしかし、

vagrant ssh -c "nohup sh -c 'while true; do sleep 3; echo x; done' &" 

を使用してVMの外からそれを実行するか、またはそれは、プロビジョニング何の一部として実行された場合に発生するようであれば

。 (。何nohup.outファイルが作成されませんでした何の仕事&はありません)


私は同じ問題に対処するように見えるの質問に次の2つの答えてみました:(1)This answerが適切」に示唆

を私のためにはうまくいかなかった。私は、次のことを試してみました:

vagrant ssh -c "nohup sh -c 'while true; do sleep 3; echo x; done' 0<&- &>/dev/null &" 

(2)second answerはどちらか動作しませんでした「睡眠1」を追加すると言う:

vagrant ssh -c "nohup sh -c 'while true; do sleep 3; echo x; done' & sleep 1" 

両方の試みは、直接ラインが働いていたコマンドでコマンドを実行するためのvagrant ssh -c経由で実行するか、プロビジョニングによって何もしないように見えます。

答えて

2

これは、それは私がスクリプトの興味深い部分

privileged: falseです)浮浪者ユーザーとして実行するrun-testスクリプトを呼び出す

hub.vm.provision "shell", path: "script/run-test.sh", privileged: false, run: 'always', args: "#{selenium_version}" 

をプロビジョニング私の場合

Vagrantfileでどのように動作するかですis

nohup java -jar /test/selenium-server-standalone-$1.jar -role hub &> /home/vagrant/nohup.grid.out& 

私の場合Javaデーモンを起動し、迷惑メールのホーム内の特定のファイルにnohupの出力をリダイレクトします。ジョブが実行中であり、迷惑なユーザーが所有していることを確認した場合。

関連する問題