キーボードコマンドを使用してRで実行中のコードを中断するにはどうすればよいですか?


82

Rで実行中のスクリプトを中断する方法を誰かに教えてもらえますか?

無限ループまたはその他の問題があり、スクリプトの実行を停止したいとします。それを行うキーボードコマンドはありますか?

それが役立つ場合は、PythonではCtrl + cです。私はそれをRで試しましたが、うまくいきませんでした:)。

この一見単純な質問を検索しましたが、答えが見つかりませんでした。

前もって感謝します。


4
Rguiでは、Rコンソールにフォーカスがある場合、ESCまたはAlt-M [Enter]を押すか、赤い停止八角形をクリックすると、現在の計算が停止します
Henry

1
また、使用しているOS(Wondows、Mac OS、Linux)とRスクリプトの実行方法(R gui、Emacsなど)にも依存すると思います。
マヌエルラモン

6
ESCはRStudioでも機能します(少なくともWindowsを実行している場合)。
キャプテンマーフィー

2
元の投稿で、それがWindows上にあったことを述べておく必要があります。すべての関連情報に言及するようにしてください。また、あなたはR.実行しているか言及している必要があります
徐王

回答:


64

自己回答(他の人のコメントと回答のほぼ要約):

  • ではRStudioEsc窓上の作品、Mac、およびUbuntuの(と私は、他のLinuxディストリビューション上で推測)。

  • プロセスがubuntuシェルで実行されている場合(これはR特定ではありません)、たとえば次を使用します。

    Rscript my_file.R
    

    Ctrl + c プロセスを殺します

    Ctrl + z プロセスを一時停止します

  • Rシェル内では、Ctrl + Ckillsはそれを回避するのに役立ちます


17
残念ながら、RStudioでは、Escメモリを大量に消費するプロセスを中断することはできません。
オリオン

14

Control-Cは機能しますが、プロセスの実行内容によっては、すぐには機能しない場合があります。

UNIXベースのシステムを使用している場合、私が行うことの1つは、control-zを使用してコマンドラインプロンプトに戻り、プロセスIDに「kill」を発行することです。


6

Ctrl + zを試してみてください。ただし、プロセスを一時停止するのではなく、強制終了します。


3
Ctrl + zを試しましたが、どちらも機能しません。ところで、私はWindowsを使用しています。でもありがとう。
Akavall 2011

いやこれはキーボード割り込み、かもしれないだけでなく近いターミナルウィンドウではありません
altabq

2

私はこれが古いことを知っていますが、私は同じ問題に遭遇しました。私はMac / Ubuntuを使用していて、前後に切り替えます。私が見つけたのは、単純な割り込み信号をメインのRプロセスに送信するだけで、まさにあなたが探していることを実行できるということです。私は24時間も続くスクリプトを実行しましたが、信号割り込みは非常にうまく機能します。ターミナルでkillを実行できるはずです:

$ kill -2 pid

あなたは実行することによってpidを見つけることができます

$ps aux | grep exec/R

私はWindowsに行ったことがないので、Windowsについてはよくわかりませんが、コマンドプロンプト/タスクマネージャーでもこれを行うオプションがないことは想像できません。

お役に立てれば!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.