2016-10-25 16 views
-1
#!/bin/bash 
# My first script 
sleep 15 & wait 
python pythonFileName.py & wait 
python pythonFileName.py & wait 
python pythonFileName.py & wait 

前の行が次の行に移動する前に実行を終了するのを待つ方法を教えてください。BronをCronjobから順番に実行しています

bashファイルを直接呼び出すとうまく動作しますが、cronjobから呼び出されると、前のものを終了するのを待たずにすべてを実行しています。

スリープはこれで問題なく動作しますが、pyファイルの場合、待機せずに実行されます。 は、私はまた、次の

A; B Run A and then B, regardless of success of A 
A && B Run B if A succeeded 
A || B Run B if A failed 
A &  Run A in background. 
+0

'&wait'はそれ自体が無害であるべきですが、あなたはそれらを取り出して非常に簡単になります。おそらく問題は他の場所にあります。おそらく、権限の問題のために、期待した入力が得られないため、ジョブがすぐに終了するという症状があります。 – tripleee

+0

トリプルのコメントで拡張する: '&'は "これが進む前にこれが終わるのを待ってはいけない"という意味ですが、 "待つ"とは "実際には完了するのを待つ"という意味です。基本的に、彼らはお互いをキャンセルし、したがって何も役に立たない。 –

+0

@GordonDavissonうーん....私は取ってみました&、同じ問題。 – CodeGuru

答えて

2

を試してみました、あなたはcronで実行しているときpythonがパスにあることを確認していますか?通常の環境設定スクリプトを実行しないため、通常のシェル環境に比べてcronジョブの環境が削除されることがよくあります。 pythonへのフルパスを指定すると機能しますか?

関連する問題