如何暂停R并稍后恢复?

时间:2015-01-08 20:29:32

标签: r

我有一个超过1亿行的非常大的数据集。我在该数据集上运行循环。该代码自两天前开始运行,我忘了添加一个计数器,看看剩下多少时间。我在一个桌子先到先得的地方工作,所以你不能有一个特定的桌子,每天结束时,你必须退出系统。 我的问题是如果我退出系统,我将失去两天的工作。有什么办法可以暂停R,退出我的系统,明天早上回来继续我的工作吗?我正在使用UNIX。如果有人能帮助我,我感激不尽。

此致 Mahsa

2 个答案:

答案 0 :(得分:9)

如果您使用的是unix系统,那么您很可能可以访问名为" screen"的程序。

如果可用,您可以打开终端,启动屏幕,启动R,然后在R仍然在后台运行时关闭终端。

然后在稍后或第二天,您只需打开另一个终端,然后使用屏幕连接回之前创建的会话。

步骤:

  1. 在您的终端中,启动屏幕

    screen
    
  2. 启动R,然后运行程序

  3. 关闭终端,只需点击x,不要ctrl-d。

  4. ......小时后

    1. 打开一个新终端,输入

      screen -ls
      

      获取当前正在运行的屏幕会话列表

    2. 重新连接到您选择的会话

      screen -r 34234
      

答案 1 :(得分:0)

您可以按照以下步骤将进程发送到后台运行:

  1. 为了说明,我创建了一个带睡眠命令的文件,睡眠时间为500秒

    [prompt ~]$ cat test.sh

    sleep 500

  2. 一旦测试脚本处于执行模式,请 Ctrl + Z 将进程发送到后台。然后输入bg 1,以便进程在后台运行。

  3. -

    [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