中断屏幕窗口中交互式会话中运行的程序

中断屏幕窗口中交互式会话中运行的程序

我正在远程会话的窗口中启动R(交互式程序) :screen

ssh me@..
screen -S R_ProjectName
R 

在R会话中,我想break执行。通常,这将通过ctrl+进行c

但是,该命令正在提交到screen而不是提交到R。在屏幕窗口内中断程序的正确方法是什么?

澄清一下,我并不打算终止该R进程。相反,ctrl+c将用于手动跳出(例如)for循环。


我正在连接到 Ubuntu 13.04 的 Mac OS X 上的 iTerm2 中工作

答案1

要退出,R通常使用命令q()来退出正在运行的实例。

例子

运行R。

$ R

坐在 R 提示符下:

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

[Previously saved workspace restored]

>

现在退出:

> q()
Save workspace image? [y/n/c]: n
$

中断正在运行的 R 命令

如果您已经运行了某些内容R并想要中止它,Ctrl+C通常是完成此操作的方法。如果这不起作用,您可能想尝试Ctrl+ \

如果上述方法都不起作用,您可能会幸运地尝试向正在运行的进程发送信号R

$ kill -USR1 <pid of R>
-or-
$ pkill -USR1 R

第二种形式将终止所有正在运行的R进程,但使您不必查找 PID。

参考

答案2

ps -A | grep R您可以通过运行然后获取进程ID kill pid

相关内容