Function: eshell/kill
eshell/kill is a byte-compiled function defined in esh-proc.el.gz.
Signature
(eshell/kill &rest ARGS)
Documentation
Kill processes.
Usage: kill [-<signal>] <pid>|<process> ... Accepts PIDs and process objects. Optionally accept signals and signal names.
Probably introduced at or before Emacs version 27.1.
Source Code
;; Defined in /usr/src/emacs/lisp/eshell/esh-proc.el.gz
(defun eshell/kill (&rest args)
"Kill processes.
Usage: kill [-<signal>] <pid>|<process> ...
Accepts PIDs and process objects. Optionally accept signals
and signal names."
;; If the first argument starts with a dash, treat it as the signal
;; specifier.
(let ((signum 'SIGINT))
(let ((arg (car args))
(case-fold-search nil))
(when (stringp arg)
(cond
((string-match "\\`-[[:digit:]]+\\'" arg)
(setq signum (abs (string-to-number arg))))
((string-match "\\`-\\([[:upper:]]+\\|[[:lower:]]+\\)\\'" arg)
(setq signum (intern (substring arg 1)))))
(setq args (cdr args))))
(while args
(let ((arg (if (eshell-processp (car args))
(process-id (car args))
(string-to-number (car args)))))
(when arg
(cond
((null arg)
(error "kill: null pid. Process may actually be a network connection."))
((not (numberp arg))
(error "kill: invalid argument type: %s" (type-of arg)))
((and (numberp arg)
(<= arg 0))
(error "kill: bad pid: %d" arg))
(t
(signal-process arg signum)))))
(setq args (cdr args))))
nil)