繁体   English   中英

如何在LSF上启动命令的完整路径

[英]How to get full path of command launched on LSF

用户已使用bsub在LSF上启动了作业。 从jobId,我可以知道哪个命令已被执行,但无法确定该命令的完整路径

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

有没有办法找到它? 或使用该命令的PATH变量?

这是件事。 但它有点凌乱。

[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)的交互,pids的顺序保证不会改变。 所以请注意。

它也很混乱,因为你必须ssh到执行主机并检查proc文件系统。 只有root或作业执行用户才能访问/ proc进行该特定进程。

您可以使用以下内容来隔离您想要的内容:

bjobs -o 'command' [job_ID]

请参阅bsub联机帮助页中的部分:

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

表1包含您可以查询的所有可能的输出字段。

如果使用-noheader ,则可以消除除所需字段之外的所有输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM