【问题标题】:How can I interrupt a running code in R with a keyboard command?如何使用键盘命令中断 R 中正在运行的代码?
【发布时间】:2012-01-12 07:43:23
【问题描述】:

谁能告诉我如何中断 R 中正在运行的脚本?

假设我有一个无限循环或其他问题,我想阻止脚本运行。有没有这样的键盘命令?

如果有帮助,在 Python 中是 Ctrl + c。我在 R 中尝试过,但没有成功:)。

我对这个看似简单的问题进行了一些搜索,但找不到答案。

提前致谢。

【问题讨论】:

  • 在 Rgui 中,如果 R 控制台有焦点,则 ESC 或 Alt-M [Enter] 或点击红色停止八边形将停止当前计算
  • 我认为这还取决于您使用的是什么操作系统(Wondows、Mac OS、Linux)以及您如何运行 R 脚本(来自 R gui、Emacs...)。
  • ESC 也适用于 R Studio(至少在运行 Windows 时)。
  • 您应该在原始帖子中提到 Windows 上的内容。尝试提及所有相关信息。您还应该提到您是如何运行 R 的。
  • 但接下来的问题是如何回到你中断的进程?

标签: r


【解决方案1】:

我知道这是旧的,但我遇到了同样的问题。我在 Mac/Ubuntu 上来回切换。我发现只需向主 R 进程发送一个简单的中断信号就可以满足您的需求。我已经运行了长达 24 小时的脚本,并且信号中断工作得很好。您应该可以在终端中运行 kill :

$ kill -2 pid

你可以通过运行找到pid

$ps aux | grep exec/R

不确定 Windows,因为我从来没有在那里,但我无法想象在命令提示符/任务管理器中也没有这样做的选项

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    自我回答(几乎是其他人的cmets和答案的总结):

    • RStudioEsc 可以在 windows、Mac 和 ubuntu 上运行(我猜也可以在其他 linux 发行版上运行)。

    • 如果进程在 ubuntu shell 中运行(这不是 R 特定的),例如使用:

      Rscript my_file.R
      

      Ctrl + c 杀死进程

      Ctrl + z 挂起进程

    • 在 R shell 中,Ctrl + C kills 可帮助您逃脱它

    【讨论】:

    • 很遗憾,在 RStudio 中,Esc 无法中断内存密集型进程。
    【解决方案3】:

    试试 Ctrl + z 但它会杀死进程,而不是挂起它。

    【讨论】:

    • 我试过 Ctrl + z,但它也不起作用。我在 Windows 上,顺便说一句。不过还是谢谢。
    • 是的,这不是键盘中断,还不如关闭终端窗口
    【解决方案4】:

    Control-C 有效,但取决于进程正在做什么,它可能不会立即执行。

    如果您使用的是基于 unix 的系统,我要做的一件事是使用 control-z 返回命令行提示符,然后向进程 ID 发出“kill”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 2011-03-04
      相关资源
      最近更新 更多