我在linux下以交互模式运行R,并错误地键入了一个需要永远运行的命令。我通常使用ctrl + c来停止它。但它并不是一直都在工作。如果它不起作用,还有另一种方法吗?我不想杀死R会议以重新开始。
感谢。
答案 0 :(得分:36)
我遇到了你提到的问题。当ctrl+c
能够意识到“哦,这个家伙要我停止运行那个特定的命令时,R
会有效。”但是,R
通常不能这样做。所以你必须运行ctrl+\
(注意它是反斜杠而不是正斜杠)。这告诉 linux
“嘿,R
没有听我说,你能停止运行R
吗?”。
首先尝试ctrl+c
,因为如果它有效,您仍然会有R
个会话。如果它不起作用,并且ctrl+\
您将失去R
会话,但至少会停止此过程。
如果这也不起作用,那么我会建议killall R
或kill -9 [PID]
通过运行pus aux
找到PID。
答案 1 :(得分:10)
尝试使用ctrl + c,然后用ctrl + z暂停R,然后用fg取消R(#job)
我尝试了上面给出的解决方案,通过kill向R发送一些信号,但都没有工作。然后我尝试了上面的序列(ctrl + c; ctrl + z,fg 1)并且它工作了。我可以继续R会议。 我不确定它是否是其中一个信号或ctrl + c停止了R,但我猜ctrl + z在这里是必不可少的。
答案 2 :(得分:6)
你也可以试试
kill -USR1 [pid]
这将中断一些R调用,有时会让您选择保存并退出,而不是一起杀死进程。
答案 3 :(得分:3)
ctrl + c无效。不知何故,ctrl + \将停止进程。但是r编程中有一个功能可以退出。您可以在RPEL上尝试 q() ,为我工作。
Q()