2016-08-08 21 views
1

Ich bin derzeit mehrere ausführbare Java-Programm mit qsub ausgeführt.Redirect Ausgabe meines Java-Programms unter qsub

Ich schrieb zwei Skripte: 1) qsub.sh, 2)

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 

Gegeben run.sh der zwei Scripte oben, übergebe ich Aufträge von

sh run.sh 

ich die Nachrichten, die von myProgram.jar -param $ {param}

So in run.sh umleiten möchten, ersetzte ich die vierte Zeile mit dem folgenden

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

aber die Nachrichten in output.txt gespeichert ist "Ihr Job 730 (" STDIN ") wurde eingereicht", was ist nicht das, was ich beabsichtigt.

Ich weiß, dass qsub eine Option -o zur Angabe der Lage des Ausgangs ausgestattet ist, aber ich kann nicht herausfinden, wie diese Option für meinen Fall zu verwenden.

Kann mir jemand helfen?

Vielen Dank im Voraus.

Antwort

1

Das Problem ist, dass qsub die Ausgabe Ihres Jobs nicht zurückgibt, sondern die Ausgabe des Befehls qsub zurückgibt, der Ihren Ressourcenmanager/Scheduler einfach darüber informiert, dass dieser Job ausgeführt werden soll.

Sie möchten die Option qsub -o verwenden, aber Sie müssen daran denken, dass die Ausgabe erst dort angezeigt wird, wenn der Job vollständig ausgeführt wurde. Für Torque würden Sie qstat verwenden, um den Status Ihres Jobs zu überprüfen, und alle anderen Ressourcenmanager/Scheduler haben ähnliche Befehle.