在运行时从Slurm作业获取stdout / stderr

san*_*ica 6 stdout slurm

我有一个批处理文件,用于发送sbatch。批处理文件的内容是

# Setting the proper SBATCH variables 
...
#SBATCH --error="test_slurm-%j.err"
#SBATCH --output="test_slurm-%j.out"
...

WORKDIR=.
echo "Run 1"
${WORKDIR}/test_slurm
echo "Run 2"
${WORKDIR}/test_slurm
Run Code Online (Sandbox Code Playgroud)

test_slurm-%j.out有时仅在每行结束后才将文件附加输出。例如,第一个的输出直到完成test_slurm才转储到其中。test_slurm-%j.outtest_slurm

有什么办法可以在运行时“清除” stdout / stderr,以便检查文件test_slurm-%j.out来监视执行情况?

按照 如何更改SLURM更新输出文件(stdout)的频率? 和 我尝试过的https://unix.stackexchange.com/questions/25372/turn-off-buffering-in-pipe

stdbuf -oL -eL ${WORKDIR}/test_slurm
stdbuf -o0 -e0 ${WORKDIR}/test_slurm
stdbuf -o1 -e1 ${WORKDIR}/test_slurm
unbuffer ${WORKDIR}/test_slurm
Run Code Online (Sandbox Code Playgroud)

这些都不起作用。

似乎没有提供答案。