web-dev-qa-db-ja.com

Linuxでctrl + c以外の実行中のRコマンドを停止するにはどうすればよいですか?

LinuxでRをインタラクティブモードで実行していますが、実行に永遠にかかるコマンドを誤って入力しました。通常、ctrl + cを使用して停止します。しかし、常に機能するわけではありません。動作しない場合、別の方法がありますか? Rセッションを強制終了してやり直したくはありません。

ありがとう。

36
danioyuan

あなたが言及した問題がありました。 ctrl+cは、Rが「ああ、この男が特定のコマンドの実行を停止することを望んでいる」と認識できるときに機能します。ただし、多くの場合、Rではできません。そのため、ctrl+\を実行する必要があります(スラッシュではなくバックスラッシュであることに注意してください)。これはlinux "ねえ、Rは私を聞いていません、できますか? R? "の実行を停止します。

最初にctrl+cを試してください。機能する場合でもRセッションが残っているためです。うまくいかず、ctrl+\を実行すると、Rセッションは失われますが、少なくともプロセスは停止します。

それでもうまくいかない場合は、killall Rを実行してPIDを見つけるkill -9 [PID]またはpus auxをお勧めします。

37
Xu Wang

Ctrl + cを使用してから、ctrl + zでRを一時停止し、fg(#job)でRの一時停止を解除します

上記の解決策をいくつかのシグナルをRにkillで送信しようとしましたが、どちらも機能しませんでした。次に、上記のシーケンス(ctrl + c、ctrl + z、fg 1)を試しましたが、うまくいきました。 Rセッションを続行できました。 Rを停止させたのがシグナルなのかctrl + cなのかわかりませんが、ここではctrl + zが不可欠だったと思います。

10
Oberyn

kill -USR1 [pid]

これによりいくつかのR呼び出しが中断され、プロセスをまとめて強制終了するのではなく、保存して終了するオプションが表示される場合があります。

6
Mike

ctrl + cが機能しません。どういうわけかctrl \はプロセスを停止します。しかし、rプログラミングには終了する機能があります。 RPELでq()を試すことができます。

q()

3
xdeepakv