Перенаправить вывод моей Java-программы под qsub

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

Написал два скрипта: 1) qsub.sh, 2) run.sh

qsub.sh

#! /bin/bash
echo cd `pwd` \; "$@" | 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 ${param}

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

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

но сообщения, сохраненные в output.txt, будут "Ваше задание 730 ("STDIN") отправлено", что я не имел в виду.

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

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

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


person Mansumen    schedule 08.08.2016    source источник


Ответы (1)


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

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

person dbeer    schedule 09.08.2016