R任务挂后台#
1.安装 tmux:
sudo apt update
sudo apt install tmux
2.创建tmux会话:
在终端执行下面命令
# 创建一个名为 mysession 的 tmux 会话
tmux new -s mysession

成功进入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脚本是完整且没有错误的

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

4.查看和重新进入tmux会话:
上面我们创建了tmux终端,那任务就自动在后台执行了,那我们该如何查看之前创建过的tmux终端并再次进入呢?
# 查看所有激活的 tmux 会话
tmux ls

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

可以看到我们又回到了刚刚的界面~所以使用tmux终端,你直接断网和关闭终端程序都不会影响程序的后台运行!
5.退出tmux会话:
当我们进入一个tmux终端后,我们该如何退出tmux环境,返回正常的终端界面呢?
# 在已经进入的 tmux 终端中执行
exit
# 然后按回车

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