2016-08-08 10 views
1

В настоящее время я запускаю несколько исполняемых программ Java, используя qsub.Перенаправить вывод моей java-программы под qsub

Я написал два сценария: 1) qsub.sh, 2) run.sh

qsub.sh

#! /bin/bash 
echo cd `pwd` \; "[email protected]" | qsub 

run.sh

#! /bin/bash 
for param in 1 2 3 
do 
./qsub.sh java -jar myProgram.jar -param ${param} 
done 

Учитывая два сценария выше, я отправляю вакансии по

sh run.sh 

Я хочу, чтобы перенаправить сообщения, сгенерированные myProgram.jar -param $ {парам}

Так в run.sh, я заменил 4-ю строку со следующим

./qsub.sh java -jar myProgram.jar -param ${param} > output-${param}.txt 

но сообщения, хранящиеся в файле output.txt, - «Ваша работа 730 (« STDIN ») была отправлена«, что я не намерен.

Я знаю, что qsub имеет опцию -o для указания местоположения вывода, но я не могу понять, как использовать эту опцию для моего случая.

Может ли кто-нибудь мне помочь?

Заранее спасибо.

ответ

1

Проблема в том, что qsub не возвращает результат вашего задания, он возвращает результат самой команды qsub, которая просто информирует вашего менеджера ресурсов/планировщика о том, что вы хотите, чтобы это задание выполнялось.

Вы хотите использовать опцию qsub -o, но вам нужно помнить, что вывод не появится там, пока работа не завершится. Для Torque вы должны использовать qstat для проверки состояния вашей работы, а все остальные менеджеры/планировщики ресурсов имеют похожие команды.