我所知道的和我尝试过的:我在 R 中有一个脚本(称为 GAM.R),我想在后台运行它输出 .rdata、.pdf 和 . .jpg 文件。从命令行运行它相对简单:
$ Rscript GAM.R
但是,这段代码需要很长时间才能运行,所以我很乐意将它发送到后台,即使在我注销并关闭计算机后也让它继续运行。我知道这也很简单,我的代码如下所示:
$ nohup Rscript GAM.R >/dev/null 2>&1 &
我用它来查看它是否有效:
$ fg
nohup Rscript GAM.R > /dev/null 2>&1
问题:我不知道如何检查代码是否正常工作(有没有办法让我看到它的进度?)而且我不知道输出的去向。我可以看到第一个代码的进度和输出,所以我不能离得太远。看起来第二个代码的输出并没有到达第一个代码输出的位置。
最佳答案
您的命令行将所有输出转移到 /dev/null
也就是位桶。
考虑将其转移到一个临时文件中:
$ nohup Rscript GAM.R >/tmp/GAM.R.output 2>&1 &
然后你可以tail/tmp/GAM.R.output
查看结果,默认会显示文件的最后10行。您可以使用 tail -f
来显示文件的结尾,以及实时的新输出。
请注意,/tmp/
文件系统不能保证在重新启动之间存在。您可以将文件放在其他地方(如 ~/GAM.R.output
如果您需要确定的话。
但是请注意,如果您关闭计算机,所有处理都会中止。为此,您的机器必须继续运行,而不是休眠或关机。
关于Linux 服务器 : How do I use nohup make sure job is working?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42794756/