0

假设我在不同的队列中启动了大量的 xterm。现在他们都把我的屏幕弄得乱七八糟,我已经失去了哪个是哪个。我想将 LSF 作业 ID 和请求的机器内存资源粘贴到 xterm 标题栏中。(我知道我可以在启动时做到这一点,但假设我已经将所有这些 xterms 放在我的桌面上,并且我想在事后将标题插入)

我可以使用它来将文本放入 xterm 标头:

echo -e "\033]2; You can rent this place for a commercial. \007"

我在想这样的事情:

get name out of uname -n 
get machine resources for name out of bjobs <<== I don't know how to do that!!!
stick interesting stuff into header
run this in all my xterm.

我想从 bjob​​s 中得到的重要信息是:

  • 机器尺寸(所以我知道我可以在那个 xterm 中启动哪些尺寸的作业)
  • LSF 的作业 ID 让我知道如何杀死它。

示例我如何启动 xterm:

qsub -q o_cpu_128G -J Gerts -P gf104 -n 8 -m "rel57" -R "span[hosts=1]" xterm -sb

我从 bjob​​s 中得到的东西

bjobs
JOBID   USER    STAT  QUEUE      FROM_HOST   EXEC_HOST   JOB_NAME   SUBMIT_TIME
8510290 ggottsc RUN   o_cpu      sc-xterm-02 8*sc-sim-21 Gerts     Mar  5 14:44
7347117 ggottsc RUN   o_cpu      sc-xterm-02 8*l-sim-156 Gerts     Mar 10 11:48
9081323 ggottsc RUN   o_cpu      sc-xterm-02 8*l-sim-237 Gerts     Mar 11 10:21

谢谢,格特

4

1 回答 1

0

我假设您的“qsub”命令是围绕 bsub 的包装器,它以交互方式提交作业?

如果是这样,对于 jobId,您应该能够查看 xterm 中的环境变量 $LSB_JOBID 来获取它。所以你可以运行类似的东西:

echo -e "\033]2; Job ID: $LSB_JOBID \007"

将当前终端的工作 ID 放入标题中。

对于“机器尺寸”,我不清楚你的意思。听起来你对机器的内存很感兴趣,但你可以从很多地方得到它。根据您问题的标题,我假设您想从您将作业提交到的队列名称中获取此信息(在您的示例中为 o_cpu_128G)。如果是这种情况,您还应该在变量 $LSB_QUEUE 下的环境中找到它,这样您就可以在 xterm 窗口标题中显示您的队列名称和作业 ID:

echo -e "\033]2; Job ID: $LSB_JOBID Queue: $LSB_QUEUE \007"

或者,您可以尝试通过解析 /proc/meminfo 或诸如“free -m”之类的命令的输出来确定主机上的实际总内存/空闲内存。

于 2014-03-12T16:03:08.193 回答