2013-09-09 4 views
0

Я пытаюсь запустить задание Кондора, где исполняемый файл является скриптом оболочки, который вызывает определенные классы 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 файла - (Just becaz Я получаю сообщение об ошибке, я удалил команды 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) 

Кроме того, здесь ошибка log from 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 [email protected]: 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 [email protected]: Failed to execute '/n/test_avp/test-modules/script/testingNew.sh': (errno=8: 'Exec format error') 
    Code 6 Subcode 8 
... 

Может ли кто-нибудь объяснить причину этой ошибки, а также как решить эту проблему? Скрипты testingNew.sh отлично работают в ящике Linux, если они выполняются на сетевой машине отдельно. Thx много !! - GR

+0

вы можете также разместить содержимое 'stdout' из кондора? – iamauser

+0

Вы на 100% уверены, что первая строка в вашем скрипте оболочки #!/Bin/sh, и над ним нет пустой строки (или комментария)? Разрешения файла сценария позволяют не только владельцу, но и любому пользователю выполнить его? – Pinko

ответ

0

Причиной, в нашем случае, был сценарий оболочки с использованием окончаний строк DOS вместо Unix.

Ядро Linux с радостью попытается передать сценарий не /bin/sh (как вы планируете), а до /bin/sh . (Вы видите, что возвращаемый символ возвращающейся каретки? Я тоже, но ядро ​​Linux). Этот файл не существует, поэтому, в крайнем случае, он попытается выполнить скрипт как двоичный исполняемый файл, который не работает с данной ошибкой.

Смежные вопросы