当使用"nohup"时,打印函数直到整个程序执行完才会打印
When using "nohup", the print function won't print until the entire program is finished
Julia 中的示例:假设我有一个包含以下代码的文件“test.jl”:
for i in 1:3
sleep(2)
print("i = ", i, "\n")
end
那么如果我运行
nohup julia test.jl &
我不会每 2 秒得到一次打印结果。相反,我将在最后获得所有三个打印结果,这对于监视需要永远完成的循环的进度是无用的。
有什么建议吗?
很可能发生了输出缓冲。尝试手动刷新标准输出:
for i in 1:3
sleep(2)
print("i = ", i, "\n")
flush(stdout)
end
nohup 将标准输出重定向到 $HOME/nohup.out 直到过程完成,然后结果会立即打印到屏幕上。
https://linux.die.net/man/1/nohup
我认为您仍然可以实时重定向它,例如 tee 或 >&1.不确定就得检查一下。
Julia 中的示例:假设我有一个包含以下代码的文件“test.jl”:
for i in 1:3
sleep(2)
print("i = ", i, "\n")
end
那么如果我运行
nohup julia test.jl &
我不会每 2 秒得到一次打印结果。相反,我将在最后获得所有三个打印结果,这对于监视需要永远完成的循环的进度是无用的。
有什么建议吗?
很可能发生了输出缓冲。尝试手动刷新标准输出:
for i in 1:3
sleep(2)
print("i = ", i, "\n")
flush(stdout)
end
nohup 将标准输出重定向到 $HOME/nohup.out 直到过程完成,然后结果会立即打印到屏幕上。
https://linux.die.net/man/1/nohup 我认为您仍然可以实时重定向它,例如 tee 或 >&1.不确定就得检查一下。