2015-11-16 23 views
5

私は内部にbashスクリプトだけを持ったドッカーubuntuコンテナを実行しています。メインスクリプト内終了時にドッカーのexecがnohupプロセスを強制終了するのはなぜですか?

docker exec -it 0b3fc9dd35f2 ./main.sh 

私は、これは長時間実行されるアプリケーションであるとして、nohupを持つ別のアプリケーションを実行したい:

#!/bin/bash 
nohup ./java.sh & 
#with this strange sleep the script is working 
#sleep 1 
echo `date` finish main >> /status.log 

javaの私はそのようなドッキングウィンドウの幹部とそのコンテナ内部の私のアプリケーションを起動したいです.SHスクリプトは(簡単にするために、それはダミーのスクリプトです)以下の通りである:

#!/bin/bash 
sleep 10 
echo `date` finish java >> /status.log 

問題がjava.shがすぐにドッキングウィンドウの幹部が戻った後に殺されていることです。問題はなぜですか?

私が知る唯一の解決策は、nohupの起動後に最初のスクリプトにダミーのsleep 1を追加することです。 2番目のプロセスがうまく動作しています。それがなぜそうなのかあなたは何か考えていますか?

[EDIT]

第2の解決策は、単に睡眠前にいくつかのechoまたはtrapコマンドjava.shにスクリプトを追加することです。それはうまく動作します。残念ながら、私はjavaプロセスを持っているこのスクリプトの代わりにこの回避策を使用することはできません。

+0

にそれを確認した容器内

docker exec -itd container_name bash -c "/opt/scripts/deploy_app.sh" 

これを実行します'docker run'を実行していて、' 'CMD''と' 'ENTRYPOINT''をDo ckerfile – user2915097

+0

私はすでに異なるプロセスでコンテナを実行しています。ドッカーのエグゼクティブで、私は第二のものを始めたいと思います。これは継続的な統合シナリオなので、1つのコンテナにさらに多くのプロセスが必要です。 –

答えて

5

これは答えではありませんが、私はまだコメントするために必要な評判を持っていません。

なぜnohupが動作しないのか分かりません。しかし、私はあなたのアイデアを使用して、働いていた回避策をした:

docker exec -ti running_container bash -c 'nohup ./main.sh &> output & sleep 1' 
+0

ありがとう、これは私のために働く。 – mainframer

2

私はこれが遅い応答である知っているが、私は、ドキュメント上の理由から、それをここに追加されます。

のbash上でnohupを使用してドッキングウィンドウコンテナの '幹部' でそれを実行している場合、あなたは

$ docker exec -d 0b3fc9dd35f2 /bin/bash -c "./main.sh"

を使用する必要があり-dオプションの意味:

-d、 - デタッチモード: バックグラウンドでコマンドを実行

docker execの詳細については、参照: https://docs.docker.com/engine/reference/commandline/exec/

これはトリックを行う必要があります。オーケー

1

、のは、上記の2つの答えに参加してみましょう:D

はまずrcmgleiteは正確に正しいと言う: 'デタッチ' 背景としてプロセスを実行するために

-d

オプションを使用しています。

2番目(最も重要!)を実行してプロセスを実行した場合、は不要nohup

deploy_app.sh

#!/bin/bash 
cd /opt/git/app 
git pull 
python3 setup.py install 
python3 -u webui.py >> nohup.out 

あなたは `ドッキングウィンドウのexec`でコンテナを起動しますが、ではありません

$ docker attach container_name 
$ ps aux 
USER  PID %CPU %MEM VSZ RSS TTY  STAT START TIME COMMAND 
root   1 0.0 0.0 11768 1940 pts/0 Ss Aug31 0:00 /bin/bash 
root  887 0.4 0.0 11632 1396 pts/1 Ss+ 02:47 0:00 /bin/bash /opt/scripts/deploy_app 
root  932 31.6 0.4 235288 32332 pts/1 Sl+ 02:47 0:00 python3 -u webui.py 
関連する問題