nohupコマンドでシェルスクリプトを実行しようとしています。シェルスクリプトはファイルの配列を取り、ループ内の各ファイルに対してPythonプログラムを実行し、出力をファイルに追加します。これはサーバー上で正常に動作しますが、nohupコマンドを使用しようとすると動作しません。私は正常にこのスクリプトではなく、このサーバー上でnohupを使用して他のプログラムを正常に実行しました。シェルスクリプトがnohupで動作しない
#!/bin/sh
ARRAY=(0010.dat 0020.dat 0030.dat)
rm batch_results.dat
touch batch0.dat
touch batch_results.dat
for file in ${ARRAY[@]}
do
python fof.py $file > /dev/null
python mdisk5.py > ./batch0.dat
tail -1 batch0.dat
tail -1 batch0.dat >> batch_results.dat
done
私は、サーバーに接続されて滞在しながら、それを実行すると、プログラムが正常に動作し、例えば
./batch.sh > /dev/null &
./batch.sh > ./output.txt &
しかし、私はnohupコマンドでそれを実行しようと、
nohup ./batch.sh > /dev/null &
サーバを終了して出力ファイル(batch_results.dat)に戻った場合、データはありません。
ここでは簡単な修正やコマンドがありません。何か案は?
編集: プログラムfof.pyは、mdisk5.pyの入力として使用される2つのファイルを生成します。 nohupの実行中にサーバーを終了すると、これらの2つのファイルが生成されますが、最初の入力ファイル '0010.dat'のみが生成されます。出力ファイルbatch0.datとbatch_results.datは空のままです。 !
#/ binに/ shの
sh
配列をサポートしていません:
にデータファイルの通常の、空白で区切られた文字列を使用します有用な情報があれば印刷されますか?また、nohupは出力ファイルを 'nohup.txt'などのファイルに入れませんか?がんばろう。 – shellter
作業ディレクトリでnohup.txtファイルが見つかりません。これは別のデフォルトディレクトリに移動しますか? – ricitron
私はちょうどそれが現在のdirか$ HOMEのどちらかであると言ったnohupのドキュメントをgoogledしました。コマンド行 'man nohup'でこれを試して、システムの仕様を確認してください。がんばろう。 – shellter