R任务挂后台

R任务挂后台#

1.安装 tmux:

sudo apt update
sudo apt install tmux

2.创建tmux会话:

在终端执行下面命令

# 创建一个名为 mysession 的 tmux 会话
tmux new -s mysession

image-20250910191556870

成功进入tmux终端的标志是下方会有绿色的框

3.在tmux会话里运行R脚本:

我们可以创建一个新的 R 脚本,名为 my_script.R,内容如下:

Sys.sleep(30)  # 模拟长任务
write.csv(data.frame(x=1:5, y=rnorm(5)), "output.csv") # 保存出一个csv文件
cat("任务完成\n")

在 tmux 会话中,你可以用下面的2种方式实现后台执行R脚本:

# 方式1:直接运行 Rscript,这种方式将完整执行整个R脚本
Rscript my_script.R
# 这种方式需要确保R脚本是完整且没有错误的

image-20250910191940256

# 方式2:使用终端R,一句一句交互式执行R语言脚本
在终端输入R,并按回车(如下方截图所示)
# 然后一句句执行R脚本

image-20250910192027167

4.查看和重新进入tmux会话:

上面我们创建了tmux终端,那任务就自动在后台执行了,那我们该如何查看之前创建过的tmux终端并再次进入呢?

# 查看所有激活的 tmux 会话
tmux ls

image-20250910192224390

这里我们可以看到刚刚创建的tmux终端(名为mysession),然后我们可以重新进入该tmux终端

# 重新进入会话
tmux attach -t mysession

image-20250910192600509

可以看到我们又回到了刚刚的界面~所以使用tmux终端,你直接断网和关闭终端程序都不会影响程序的后台运行!

5.退出tmux会话:

当我们进入一个tmux终端后,我们该如何退出tmux环境,返回正常的终端界面呢?

# 在已经进入的 tmux 终端中执行
exit
# 然后按回车

image-20250910192726873

# 退出后,绿色的框会消失,变回正常的终端界面
# 还可以通过tmux ls命令来查看对应tmux终端是否结束