除了ctrl + c之外,如何在linux中停止运行R命令?

dan*_*uan 36 linux command r

我在linux下以交互模式运行R,并错误地键入了一个需要永远运行的命令.我通常使用ctrl + c来停止它.但它并不是一直有效.当它不起作用时,还有另一种方法吗?我不想杀死R会话重启.

谢谢.

Xu *_*ang 37

我有你提到的问题.ctrl+cR能够意识到"哦,这家伙希望我停止运行那个特定命令时,它会工作." 但是,往往R做不到这一点.所以你必须运行ctrl+\(注意它是反斜杠而不是正斜杠).这告诉linux"嘿,R不听我的话,你能停止跑步R吗?".

ctrl+c首先尝试,因为如果它工作,你仍然会有你的R会话.如果它不起作用,那么ctrl+\你会失去你的R会话,但至少会停止这个过程.

如果这也不起作用,那么我会通过运行建议你killall R或者在kill -9 [PID]哪里找到PID pus aux.

  • 当Ctrl + C不起作用时,通常是因为您调用了一个函数来调用不检查用户中断的编译代码.这些通常是用户提供的包,而不是基本/推荐的R包. (6认同)

小智 10

尝试使用ctrl + c,然后用ctrl + z暂停R,然后用fg取消R(#job)

我尝试了上面给出的解决方案,通过kill向R发送一些信号,但都没有工作.然后我尝试了上面的序列(ctrl + c; ctrl + z,fg 1)并且它工作了.我可以继续R会议.我不确定是否是其中一个信号或ctrl + c停止了R,但我猜ctrl + z在这里是必不可少的.


小智 6

你也可以试试 kill -USR1 [pid]

这将中断一些R调用,有时会让您选择保存并退出,而不是一起杀死进程.