Как убить удаленный процесс, не убивая оболочку (C-C C-C также убивает оболочку ...) - PullRequest
12 голосов
/ 20 января 2012

Предположим, вы работаете на удаленном сервере из локальной оболочки emacs (началось с M-x shell).Если вы выполняете процесс, который занимает слишком много времени (например, ls в каталоге с огромным количеством файлов), вы хотели бы остановить этот процесс (в терминале можно было бы использовать control-c).Я пробовал C-c C-c, но это убивает всю оболочку ... Как я могу уничтожить только запущенный процесс на удаленном сервере, а не всю оболочку?

Обновление

Пошаговая инструкция:

1) M-x shell (execute on local machine)
2) ssh mylogin@myremotemachine.foo.bar (execute on local machine)
3) sleep 60 (execute on remote machine)
4) C-c C-c (execute in the current shell)

=> вместо того, чтобы оставаться на удаленном хосте и просто убить команду сна, все удаленное соединение закрывается, и вы снова на локальном компьютере.

Ответы [ 2 ]

21 голосов
/ 21 января 2012

Когда я выполняю шаги, которые вы перечислили, я снова оказываюсь в приглашении удаленной оболочки.Я использую Emacs 23.1.1.

Я обнаружил, что ввод Cq Cc RET также прерывает удаленный процесс, снова оставляя меня в приглашении удаленной оболочки.Вы можете попробовать это как альтернативный подход.

0 голосов
/ 31 января 2014

Мне неясно, хотите ли вы убить команду из Emacs, но вы можете поочередно открыть другое соединение или окно (если вы используете screen или tmux) и выполнить стандарт

ps aux | grep hungprocess

и затем

kill hungprocess_pid

По какой-то причине я продолжал думать, что такой метод не сработает, и что в конечном итоге я также отключу emacs.Я использовал такой метод несколько раз, когда я не настраивал свой агент gpg pinentry при открытии зашифрованного файла gpg в emacs.Emacs / gpg будет пытаться порождать графический интерфейс и, следовательно, зависает в emacs, ожидая ввода в GUI, когда я удаленно подключусь к ssh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...