たくさんのスクリプトを取り込み、それらのラッパーを Python で作成しています。私に与えられたスクリプトを作成しませんでした。現在、私は python 2.2 を使用しており、使用しているシェルは csh シェルです。
次の方法でスクリプトを実行すると:
>> setenv some_var '/some/path/'
>> <some more setenv>
>> ./script -flag >& log.txt < /dev/null &
全然問題なく走れます。
この問題は、bash ラッパーを使用して Python ラッパーを呼び出すときに発生します。私のbashスクリプト(analysis.sh)は次のとおりです。
#!/bin/bash
#environment variables
ENV1='/path/for/env1'
ENV2='/path/for/env2'
export ENV1
export ENV2
./run_analysis.py $@
exit
私のpythonファイルでは、基本的に行っているのは実行することだけです
....
os.system(script_path + script_name + script_flag)
....
cshシェルで次の方法でスクリプトを実行するたびに:
./analysis.sh -flag script_name >& log.txt < /dev/null &
スクリプトを実行すると、突然パイプの破損に関するエラーが大量に発生します ("grep: 出力の書き込み: パイプの破損")。スクリプトが多くの grep を使用していることは知っています。リダイレクトを実行すると、これらのエラーがポップアップする理由がわかりません。Python 2.2 では、'os' と 'commands' モジュールのみが存在します。これらの制約を使用することを余儀なくされています。
ありがとうございました。