Подтвердить что ты не робот

Как остановить запущенную команду R в linux, отличную от ctrl + c?

Я запускаю R в интерактивном режиме под Linux и ошибочно набираю команду, которая навсегда запускается. Обычно я останавливаю его с помощью ctrl + c. Но это не работает все время. Когда это не сработает, есть ли другой способ? Я не хочу убивать сеанс R для начала.

Спасибо.

4b9b3361

Ответ 1

У меня была проблема, которую вы упомянули. ctrl+c будет работать, когда R сможет реализовать "о, этот парень хочет, чтобы я прекратил выполнение этой конкретной команды". Однако часто R не может этого сделать. Поэтому вам нужно запустить ctrl+\ (обратите внимание, что это обратная косая черта не косая черта). Это говорит linux "эй, R не слушает меня, можете ли вы остановить запуск R?".

Попробуйте ctrl+c, потому что, если он работает, у вас все равно будет сеанс R. Если он не работает, и вы ctrl+\, вы потеряете сессию R, но по крайней мере остановите процесс.

Если это не сработает, тогда я предлагаю killall R или kill -9 [PID], где вы найдете PID, запустив pus aux.

Ответ 2

Попробуйте использовать ctrl + c, затем приостановите R с помощью ctrl + z, а затем отключите R с помощью fg (#job)

Я попробовал приведенные выше решения с отправкой некоторых сигналов в R с kill, но не работал. Затем я попробовал последовательность выше (ctrl + c; ctrl + z, fg 1), и она сработала. Я мог бы продолжить сеанс R. Я не уверен, был ли это один из сигналов или ctrl + c, который остановил R, но я думаю, что ctrl + z здесь имеет важное значение.

Ответ 3

Вы также можете попробовать kill -USR1 [pid]

Это прерывает некоторые R-вызовы, а иногда дает вам возможность сохранять и прекращать убийство процесса вместе.

Ответ 4

ctrl + c не работает. Как-то ctrl +\остановит процесс. Но есть необходимость в программировании r для выхода. Вы можете попробовать q() на RPEL, работая для меня.

д()