这是我的pbs文件:
#!/bin/bash
#PBS -N myJob
#PBS -j oe
#PBS -k o
#PBS -V
#PBS -l nodes=hpg6-15:ppn=12
cd ${PBS_O_WORKDIR}
./mycommand
在qsub文档页面上,好像我放了一行
PBS -k o
,我应该能够在我的家庭目录中检查名为myJob.oJOBID的文件中的实时输出。但是,当我在运行时通过tail -f
或cat
或more
检查输出时,它在文件中不显示任何内容。只有当我终止作业时,文件才会显示输出。有什么我应该检查以使流实时刷新到输出文件吗?
答案 0 :(得分:1)
默认情况下,文件在节点上创建,并在作业完成时复制到主目录。群集管理员可以通过添加" $ spool_as_final_name true"来更改此行为。到每个节点上的mom_priv目录中的配置文件。
答案 1 :(得分:0)
假设您被允许登录到运行您的进程的节点(在工作期间,集群的管理员允许这样做,不确定这是否常见),那么您可以实时输出由
PID
lsof -n -p <PID>
打开的该文件,并找到名称“看起来像”日志文件的文件。在我们的集群中,文件是/cm/local/apps/pbspro-ce/var/spool/spool/[JOBID][server].OU
/cm/local/apps/pbspro-ce/var/spool/spool/[JOBID][server].ER
.OU
是stdout,而.ER
是stderr。然后,您可以tail -f
以获得实时输出。
尽管lsof
的输出可能很长,所以您应该尝试grep
键入您的JOBID,或者也许pbspro-ce/var/spool/
这一点。
想知道是否可以在我们自己的集群以外的集群中复制它。