我有一个批处理文件来发送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
文件test_slurm-%j.out
有时仅在每行完成后附加输出。
例如,test_slurm
的第一个实例的输出在test_slurm-%j.out
完成之前不会被转储到test_slurm
。
有没有办法让stdout / stderr在运行时“刷新”,所以我可以检查文件test_slurm-%j.out
来监控执行情况?
按照 How to change how frequently SLURM updates the output file (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
这些都不起作用。
This似乎没有提供答案。