1

実行可能ファイルが特定の Java クラスを呼び出すシェル スクリプトである Condor ジョブを実行しようとしています。

Universe = vanilla
Executable = /script/testingNew.sh
requirements = (OpSys == "LINUX")
Output =  /locfiles/myfile.out
Log = /locfiles/myfile.log
Error = /locfiles/myfile.err
when_to_transfer_output = ON_EXIT
Notification = Error
Queue

/script/testingNew.sh ファイルの内容は次のとおりです (エラーが発生したため、現時点では Java コマンドを削除しました)。

#!/bin/sh
inputfolder=/n/test_avp/test-modules/data/json
srcFolder=/n/test_avp/test-modules
logsFolder=/n/test_avp/test-modules/log
libFolder=/n/test_avp/test-modules/lib
confFolder=/n/test_avp/test-modules/conf
twpath=/n/test_avp/test-modules/normsrc
dataFolder=/n/test_avp/test-modules/data
scriptFolder=/n/test_avp/test-modules/script
locFolder=/n/test_avp/test-modules/locfiles
bakUpFldr=/n/test_avp/test-modules/backupCurrent

cd $inputfolder
filename=`date -u +"%Y%m%d%H%M"`.txt
echo  $filename  $(date -u)

mkdir $bakUpFldr/`date -u +"%Y%m%d"`

dirname=`date -u +"%Y%m%d"`
flnme=current_json_`date -u +"%Y%m%d%H%M%S"`.txt
echo DIRNameis $dirname Filenameis $flnme

cp $dataFolder/current_json.txt  $bakUpFldr/`date -u +"%Y%m%d"`/current_json_$filename
cp $dataFolder/current_json.txt   $filename

mkdir $inputfolder/`date -u +"%Y%m%d"`
echo Creating Directory  $(date -u)

mv $filename $filename.inprocess
echo Created Inprocess file  $(date -u)

また、Condor からのエラー ログは次のとおりです。

000 (424639.000.000) 09/09 16:08:18 Job submitted from host: <135.207.178.237:9582>
...
001 (424639.000.000) 09/09 16:08:35 Job executing on host: <135.207.179.68:9314>
...
007 (424639.000.000) 09/09 16:08:35 Shadow exception!
    Error from slot1@marcus-8: Failed to execute '/n/test_avp/test-modules/script/testingNew.sh': (errno=8: 'Exec format error')
    0  -  Run Bytes Sent By Job
    0  -  Run Bytes Received By Job
...
012 (424639.000.000) 09/09 16:08:35 Job was held.
    Error from slot1@marcus-8: Failed to execute '/n/test_avp/test-modules/script/testingNew.sh': (errno=8: 'Exec format error')
    Code 6 Subcode 8
...

誰でもこのエラーの原因を説明できますか? また、これを解決する方法はありますか? testingNew.sh スクリプトは、ネットワーク マシンで個別に実行した場合、Linux ボックスで正常に実行されます。ありがとう!!- GR

4

2 に答える 2

-1

入力を次のように指定する必要があります。

input   = /dev/null

出典: Condor にジョブを送信する

于 2016-06-07T14:18:34.447 に答える