2016-06-14 9 views
1

Ein Benutzer hat einen Job auf LSF mit bsub gestartet. Von jobId, kann ich wissen, welche ausgeführt Befehl wurde, kann aber nicht vollständigen Pfad desSo erhalten Sie den vollständigen Befehlspfad für LSF gestartet

Job <270090>, User <abhkumar>, Project <default>, 
Interactive pseudo-terminal mode, Command <virtuoso> 

Gibt es eine Möglichkeit, es zu finden Befehls bestimmen? oder PATH-Variable mit diesem Befehl?

+0

Ich glaube nicht, dass es einen einfachen Weg gibt, es zu tun. Die PATH-Variable wird in der Übergabeumgebung erfasst und dann in der Ausführungsumgebung des Jobs festgelegt. –

Antwort

0

Hier ist etwas. Aber es ist ein bisschen chaotisch.

[[email protected] ~]$ bjobs -l 806 

Job <806>, User <mclosson>, Project <default>, Status <RUN>, Queue <normal>, Co 
       mmand <sleep 100000>, Share group charged </mclosson> 
Thu Jul 7 15:58:18: Submitted from host <host>, CWD <$HOME>; 
Thu Jul 7 15:58:19: Started 1 Task(s) on Host(s) <host>, Allocated 1 Slot(s 
       ) on Host(s) <host>, Execution Home </home/mclosson>, E 
       xecution CWD </home/mclosson>; 
Thu Jul 7 15:58:20: Resource usage collected. 
       MEM: 5 Mbytes; SWAP: 0 Mbytes; NTHREAD: 4 
       PGID: 11125; PIDs: 11125 11127 **11129** 


[[email protected] ~]$ bjobs -o pids 806 
PIDS 
11125,11127,**11129** 


[[email protected] ~]$ ls -l /proc/**11129**/exe 
lrwxrwxrwx 1 mclosson lsf 0 Jul 7 15:59 /proc/11129/exe -> /bin/sleep 

Sein chaotisch, weil der Job PID Parsen aus bjobs -l unordentlich ist. Parsing bjobs -o pids ist einfacher. Der Befehl ist wahrscheinlich immer die dritte PID. Der erste ist der Job res, der zweite das Jobskript. Wenn der Befehl andere Befehle startet, werden diese PIDs ebenfalls angezeigt. Ich bezweifle, dass sich die Reihenfolge der Pids aufgrund der Interaktion mit verschiedenen LSF-Merkmalen (z.B. cgroups, pim, blaunch) garantiert nicht ändert. Also Vorbehalte emptor.

Es ist auch chaotisch, weil Sie ssh zum Ausführungshost haben und das proc-Dateisystem überprüfen müssen. Und nur root oder der Jobausführungsbenutzer kann auf/proc für diesen bestimmten Prozess zugreifen.

0

können Sie die folgenden Befehle verwenden zu isolieren, was Sie wollen:

bjobs -o 'command' [job_ID]

Siehe Abschnitt im bsub manpage mit:

bjobs -o "field_name[:[-][output_width]] ... [delimiter='character']"

Tabelle 1 enthält alle möglichen Ausgabefelder Sie können abfragen.

Wenn Sie -noheader verwenden, können Sie alle Ausgaben mit Ausnahme des gewünschten Felds löschen.