用户已使用bsub在LSF上启动了作业。从jobId,我可以知道哪个命令已被执行,但无法确定该命令的完整路径
Job <270090>, User <abhkumar>, Project <default>,
Interactive pseudo-terminal mode, Command <virtuoso>
有找到它的方法吗?或使用该命令的PATH变量?
答案 0 :(得分:0)
这是件事。但它有点乱。
[mclosson@host ~]$ 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**
[mclosson@host ~]$ bjobs -o pids 806
PIDS
11125,11127,**11129**
[mclosson@host ~]$ ls -l /proc/**11129**/exe
lrwxrwxrwx 1 mclosson lsf 0 Jul 7 15:59 /proc/11129/exe -> /bin/sleep
它很混乱,因为从bjobs -l
解析出作业PID是混乱的。解析bjobs -o pids
更容易。该命令可能始终是第三个pid。第一个是作业res,第二个是作业脚本。如果该命令启动其他命令,那么这些命令也会出现。我怀疑由于与各种LSF特征(例如,cgroups,pim,blaunch)的交互,pid的顺序保证不会改变。告诫者。
它也很混乱,因为你必须ssh
到执行主机并检查proc文件系统。只有root或作业执行用户才能访问/ proc进行该特定进程。
答案 1 :(得分:0)
您可以使用以下内容来隔离您想要的内容:
bjobs -o 'command' [job_ID]
请参阅bsub联机帮助页中的部分:
bjobs -o "field_name[:[-][output_width]] ... [delimiter='character']"
表1包含您可以查询的所有可能的输出字段。
如果您使用-noheader
,则可以删除除所需字段之外的所有输出。