我有一个超过1亿行的非常大的数据集。我在该数据集上运行循环。该代码自两天前开始运行,我忘了添加一个计数器,看看剩下多少时间。我在一个桌子先到先得的地方工作,所以你不能有一个特定的桌子,每天结束时,你必须退出系统。 我的问题是如果我退出系统,我将失去两天的工作。有什么办法可以暂停R,退出我的系统,明天早上回来继续我的工作吗?我正在使用UNIX。如果有人能帮助我,我感激不尽。
此致 Mahsa
答案 0 :(得分:9)
如果您使用的是unix系统,那么您很可能可以访问名为" screen"的程序。
如果可用,您可以打开终端,启动屏幕,启动R,然后在R仍然在后台运行时关闭终端。
然后在稍后或第二天,您只需打开另一个终端,然后使用屏幕连接回之前创建的会话。
步骤:
在您的终端中,启动屏幕
screen
启动R,然后运行程序
关闭终端,只需点击x,不要ctrl-d。
......小时后
打开一个新终端,输入
screen -ls
获取当前正在运行的屏幕会话列表
重新连接到您选择的会话
screen -r 34234
答案 1 :(得分:0)
您可以按照以下步骤将进程发送到后台运行:
为了说明,我创建了一个带睡眠命令的文件,睡眠时间为500秒
[prompt ~]$ cat test.sh
sleep 500
一旦测试脚本处于执行模式,请 Ctrl + Z 将进程发送到后台。然后输入bg 1
,以便进程在后台运行。
-
[prompt ~]$ sh test.sh
[1]+ Stopped sh test.sh
[prompt ~]$
[prompt ~]$ bg 1
[1]+ sh test.sh &
[prompt ~]$
[prompt ~]$ ps -ef | grep -i test.sh
user1 20683 17618 0 16:08 pts/17 00:00:00 sh test.sh
user1 20925 17618 0 16:08 pts/17 00:00:00 grep -i test.sh