ti-enxame.com

Como posso interromper um código em execução no R com um comando de teclado?

Alguém pode dizer como posso interromper um script em execução no R?

Digamos que eu tenha um loop infinito ou algum outro problema, e quero impedir que o script seja executado. Existe um comando de teclado que faz isso?

Se isso ajudar, em Python é Ctrl + c. Eu tentei isso em R, e não funcionou :).

Fiz uma busca por essa pergunta aparentemente simples, mas não consegui encontrar a resposta.

Desde já, obrigado.

65
Akavall

Auto-resposta (praticamente um resumo dos comentários e respostas dos outros):

  • Em RStudio, Esc funciona, em windows, Mac e ubuntu (e eu acho que em outras distribuições linux também).

  • Se o processo é executado em dizer ubuntu Shell (e isso não é R específico), por exemplo, usando:

    Rscript my_file.R
    

    Ctrl + c mata o processo

    Ctrl + z suspende o processo

  • Dentro de R Shell, Ctrl + C mata ajuda você a escapar

50
Akavall

O Control-C funciona, embora dependendo do que o processo está fazendo, pode não levar de imediato.

Se você estiver em um sistema baseado em unix, uma coisa que faço é controlar -z para voltar para a linha de comando Prompt e, em seguida, emitir um 'kill' para o ID do processo.

14
geoffjentry

Experimente Ctrl + z Mas vai matar o processo, não suspendê-lo.

7
Bhushan

Eu sei que isso é velho, mas me deparei com o mesmo problema. Eu estou em um Mac/Ubuntu e alterno. O que eu descobri é que apenas enviar um simples sinal de interrupção para o processo R principal faz exatamente o que você está procurando. Eu executei scripts que duraram até 24 horas e a interrupção do sinal funciona muito bem. Você deve ser capaz de executar kill no terminal:

$ kill -2 pid

Você pode encontrar o pid executando

$ps aux | grep exec/R

Não tenho certeza sobre o Windows, já que nunca estou lá, mas não consigo imaginar que não haja uma opção para fazer isso também no Prompt de Comando/Gerenciador de Tarefas

Espero que isto ajude!

1
Mgarvey