2012-02-18 91 views

回答

32

我有你提到的問題。 ctrl+c將在R能夠實現「哦,這個人希望我停止運行該特定命令」時工作。但是,經常R不能這樣做。所以你必須運行ctrl+\(注意它是一個反斜槓而不是正斜槓)。這告訴linux「嘿,R不聽我說,你可以停止運行R?」。

嘗試ctrl+c首先,因爲如果它工作,你仍然會有你的R會話。如果它不起作用,並且你做了ctrl+\你將失去​​你的R會話,但至少停止這個過程。

如果這也不起作用,那麼我會建議一個killall Rkill -9 [PID],您可以通過運行pus aux找到PID。

+5

當按Ctrl + C不起作用,它通常是因爲你還叫調用編譯後的代碼不檢查用戶中斷的功能。這些通常在用戶提供的軟件包中,而不是基本/推薦的R軟件包。 – 2012-02-18 12:21:32

+0

感謝您的迴應,儘管我一直在尋找一種可以讓R會話保持活力的解決方案。 – danioyuan 2012-02-21 23:20:55

+0

@danioyuan,從我從Joshua的評論中收集到的信息,這對於你所調用的某些功能來說可能是不可能的 - 他們可以自由地忽略用戶中斷。 – Richard 2012-07-03 17:08:25

6

您也可以嘗試 kill -USR1 [pid]

這會打斷一些[R通話,有時給你保存並退出,而查殺過程結合在一起的選項。

10

嘗試使用CTRL + C,然後用CTRL + Z暫停R,然後用FG取消暫停R(#job)

我試圖與發送某些信號至R用kill上面給出的解決方案,但是沒有工作。然後我嘗試了上面的順序(ctrl + c; ctrl + z,fg 1),它就起作用了。我可以繼續R會議。 我不確定它是否是一個信號或ctrl + c停止了R,但我猜ctrl + z在這裏是必不可少的。

3

ctrl + c無法正常工作。以某種方式c​​trl + \將停止該過程。但是r編程有一個功能可以退出。你可以試試q()在RPEL上爲我工作。

Q()