0

次の小さなスクリプトは、10分ごとにパラメータを使用してシェルコマンドを実行することになっています。正しく実行されたのは1回(30分前)ですが、現在はボールをプレーしていません(それ以降、このプロセスをさらに2回実行する必要があります)。私は間違いを犯しましたか?

while(True):
  subprocess.call(["command"、 "param"])
  time.sleep(600)
4

2 に答える 2

2

subprocess.callは、コマンドが何であれ、おそらくブロックされています。私はあなたのPythonスクリプトを疑っていますが、シェルコマンドが何であれ(時間がかかりすぎます)。

コマンドが完了したかどうかは、戻りコードを確認することでわかります。

print subprocess.call(["command","param"])

0成功した場合は出力する必要があり、コマンドに問題がある場合は例外を発生させる必要があります。しかし、連続したプリントが表示されない場合は、呼び出しから戻ることはありません。

于 2012-04-26T16:26:57.020 に答える
1

コマンドが完了するのを待つ必要がない場合は、subprocess.Popenを試してください。

ドキュメントから、

subprocess.call:argsで記述されたコマンドを実行します。コマンドが完了するのを待ってから、returncode属性を返します。

于 2012-04-26T16:28:23.107 に答える