2012-02-18 21 views

Trả lời

32

Tôi gặp sự cố bạn đề cập đến. ctrl+c sẽ hoạt động khi R có thể nhận ra "oh anh chàng này muốn tôi ngừng chạy lệnh cụ thể đó." Tuy nhiên, thường là R không thể thực hiện điều đó. Vì vậy, bạn phải chạy ctrl+\ (lưu ý rằng đó là dấu gạch chéo ngược không phải là dấu gạch chéo chuyển tiếp). Điều này cho biết linux "hey, R không lắng nghe tôi, bạn có thể ngừng chạy R?".

Hãy thử ctrl+c trước tiên vì nếu nó hoạt động, bạn vẫn sẽ có phiên R của mình. Nếu nó không hoạt động, và bạn làm ctrl+\ bạn sẽ mất phiên R nhưng ít nhất là dừng quá trình.

Nếu điều đó không hoạt động, thì tôi sẽ đề xuất một số killall R hoặc kill -9 [PID] nơi bạn tìm thấy PID bằng cách chạy pus aux.

+5

Khi Ctrl + C không hoạt động, nó thường là bởi vì bạn đã kêu gọi một chức năng mà các cuộc gọi biên soạn mã mà không kiểm tra cho người dùng ngắt. Các gói này thường nằm trong các gói do người dùng cung cấp, không phải các gói R cơ bản/được đề xuất. –

+0

Cảm ơn phản hồi, mặc dù tôi đang tìm kiếm một giải pháp có thể giữ cho phiên R tồn tại. – danioyuan

+0

@danioyuan, từ những gì tôi thu thập từ nhận xét của Joshua, điều đó có thể không thực hiện được với một số chức năng mà bạn đang gọi - chúng được tự do bỏ qua các ngắt của người dùng. – Richard

6

Bạn cũng có thể thử kill -USR1 [pid]

này sẽ làm gián đoạn một số cuộc gọi R và đôi khi cung cấp cho bạn các tùy chọn để lưu lại, thoát chứ không phải giết chết quá trình này tất cả cùng nhau.

10

Cố gắng sử dụng ctrl + c, sau đó tạm dừng R với ctrl + z, và sau đó bỏ tạm dừng R với fg (#job)

Tôi đã thử các giải pháp đưa ra ở trên với việc gửi một số tín hiệu cho R với kill, nhưng không phải đã làm việc. Sau đó, tôi đã thử trình tự ở trên (ctrl + c; ctrl + z, fg 1) và nó hoạt động. Tôi có thể tiếp tục phiên R. Tôi không chắc đó có phải là một trong những tín hiệu hoặc ctrl + c đã dừng R, nhưng tôi đoán ctrl + z là điều cần thiết ở đây.

3

ctrl + c không hoạt động. Bằng cách nào đó ctrl + \ sẽ ngừng quá trình. Nhưng có một fuction trong r lập trình để bỏ thuốc lá. Bạn có thể thử q() trên RPEL, đã làm việc cho tôi.

q()

Các vấn đề liên quan