2012-02-18 13 views

Odpowiedz

32

Mam problem, o którym wspomniałeś. ctrl+c będzie działać, gdy R będzie w stanie zrealizować "och, ten facet chce, żebym przestał wykonywać to polecenie". Jednak często R nie może tego zrobić. Musisz więc uruchomić ctrl+\ (zauważ, że jest to ukośnik odwrotny, a nie ukośnik). To mówi, że "hej, " nie słucha mnie, czy możesz przestać działać R? ".

Najpierw spróbuj ctrl+c, bo jeśli to zadziała, nadal będziesz mieć sesję R. Jeśli to nie zadziała i wykonasz ctrl+\, stracisz swoją sesję R, ale przynajmniej zatrzymasz proces.

Jeśli to też nie działa, sugeruję killall R lub kill -9 [PID], gdzie można znaleźć PID, uruchamiając pus aux.

+5

Kiedy Ctrl + C nie działa, to zwykle dlatego, że nazywa się funkcję połączeń skompilowany kod, który nie sprawdza przerwania przez użytkownika. Są to zazwyczaj pakiety dostarczane przez użytkownika, a nie podstawowe/zalecane pakiety R. –

+0

Dzięki za odpowiedź, chociaż szukałem rozwiązania, które może utrzymać sesję R przy życiu. – danioyuan

+0

@danioyuan, z tego, co zbieram z komentarza Joshuy, które może nie być możliwe w przypadku niektórych funkcji, do których dzwonisz - mogą zignorować przerwania użytkownika. – Richard

6

Możesz także spróbować kill -USR1 [pid]

To spowoduje przerwanie niektórych połączeń R i czasami daje możliwość zapisywania i zakończyć proces raczej zabija wszystko razem.

10

Spróbuj ctrl + c, a następnie wstrzymać R z Ctrl-Z, a następnie odmrozić R FG (#job)

I wypróbowane rozwiązania podane powyżej wysyłania pewnych sygnałów R kill, lecz nie pracował. Następnie wypróbowałem powyższą sekwencję (ctrl + c; ctrl + z, fg 1) i zadziałało. Mogłem kontynuować sesję R. Nie jestem pewien, czy był to jeden z sygnałów, czy też ctrl + c zatrzymało R, ale domyślam się, że ctrl + z było tutaj niezbędne.

3

Ctrl + C nie działa. W jakiś sposób ctrl + \ zatrzyma proces. Ale istnieje programowanie do zakończenia. Możesz spróbować q() na RPEL, pracował dla mnie.

q()

Powiązane problemy