web-dev-qa-db-fra.com

Comment arrêter une commande R en cours d'exécution sous Linux autre que ctrl + c?

J'exécute R en mode interactif sous Linux et j'ai tapé par erreur une commande qui prend une éternité à s'exécuter. Je l'arrête généralement en utilisant ctrl + c. Mais ça ne marche pas tout le temps. Quand ça ne marche pas, y a-t-il une autre façon? Je ne veux pas non plus tuer la session R pour recommencer.

Merci.

36
danioyuan

J'ai eu le problème que vous mentionnez. ctrl+c fonctionnera lorsque R pourra réaliser "oh ce mec veut que j'arrête d'exécuter cette commande particulière." Cependant, souvent R ne peut pas faire cela. Vous devez donc exécuter ctrl+\ (notez qu'il s'agit d'une barre oblique inverse et non d'une barre oblique). Cela indique linux "hé, R ne m'écoute pas, pouvez-vous arrêter d'exécuter R? ".

Essayez ctrl+c d'abord parce que si cela fonctionne, vous aurez toujours votre session R. Si cela ne fonctionne pas et que vous faites ctrl+\ vous perdrez votre session R mais au moins arrêter le processus.

Si cela ne fonctionne pas non plus, je suggère un killall R ou un kill -9 [PID] où vous trouvez le PID en exécutant pus aux.

37
Xu Wang

Essayez d'utiliser ctrl + c, puis suspendez R avec ctrl + z, puis réactivez R avec fg (#job)

J'ai essayé les solutions données ci-dessus en envoyant des signaux à R avec kill, mais aucun n'a fonctionné. Ensuite, j'ai essayé la séquence ci-dessus (ctrl + c; ctrl + z, fg 1) et cela a fonctionné. Je pourrais continuer la session R. Je ne sais pas si c'est l'un des signaux ou ctrl + c qui a arrêté R, mais je suppose que ctrl + z était essentiel ici.

10
Oberyn

Vous pouvez également essayer kill -USR1 [pid]

Cela interrompra certains appels R et vous donnera parfois la possibilité d'enregistrer et de quitter plutôt de tuer le processus tous ensemble.

6
Mike

ctrl + c ne fonctionne pas. D'une manière ou d'une autre, ctrl\arrêtera le processus. Mais il y a une fonction dans la programmation r pour quitter. Vous pouvez essayer q () sur RPEL, a fonctionné pour moi.

q()

3
xdeepakv