How to kill an internal process in Emacs? For example I run M-x shell
.
I can check running processes with M-x list-processes
but how can I kill a process from this list?
How to kill an internal process in Emacs? For example I run M-x shell
.
I can check running processes with M-x list-processes
but how can I kill a process from this list?
This thread is ancient but here's a very quick hack that works perfectly for me
(define-key process-menu-mode-map (kbd "C-k") 'joaot/delete-process-at-point)
(defun joaot/delete-process-at-point ()
(interactive)
(let ((process (get-text-property (point) 'tabulated-list-id)))
(cond ((and process
(processp process))
(delete-process process)
(revert-buffer))
(t
(error "no process at point!")))))
There is no default key binding for this; however see pjammer's answer --
list-processes+
includes (among other things) a kill binding on C-k -- and also Joao Tavora's answer -- which provides just a kill binding (for the same key).event_jr points out in the comments that you can use M-:
(kill-process)
RET to kill the current buffer's process.More generally: You can use M-:
(kill-process PROCESS)
RET, wherePROCESS
"may be a process, a buffer, or the name of a process or buffer", with those names being as they appear in the output oflist-processes
. Process names take precedence over buffer names, should you happen to have a conflict; so it's probably best to be in the habit of supplying the process name.Alternatively, Emacs 23+ has a general system process manager (
M-x proced
) which is more akin to runningtop
, and which does have a default binding for sending (arbitrary) signals (k). Of course it may be far less obvious in that listing which process you're interested in.Edit: Better late than never :) The following enables M-x
kill-process
RET to be used (tested in Emacs 26.1):