Удаление процессов
Удаление процесса немедленно отключает Emacs от подпроцесса. Процессы удаляются автоматически после завершения, но не обязательно сразу. Вы можете явно удалить процесс в любое время. Если вы явно удалите завершившийся процесс до его автоматического удаления, это не причинит вреда. Удаление работающего процесса отправляет сигнал для его завершения (а также завершения его дочерних процессов, если они есть) и вызывает обработчик состояния процесса. См. Обработчики состояния: обнаружение изменений состояния процесса.
После удаления процесса сам объект процесса продолжает существовать, пока на него ссылаются другие объекты Lisp. Все примитивы Lisp, работающие с объектами процессов, принимают удалённые процессы, однако примитивы, выполняющие ввод-вывод или отправляющие сигналы, сообщат об ошибке. Метка процесса продолжает указывать на то же место, что и раньше, обычно в буфере, куда вставлялся вывод процесса.
- Пользовательская опция: delete-exited-processes
Эта переменная управляет автоматическим удалением завершившихся процессов (в результате вызова
exitили получения сигнала). Если её значение равноnil, процессы продолжают существовать, пока пользователь не выполнитlist-processes. В противном случае они удаляются сразу после завершения.
- Функция: delete-process &optional process
-
Эта функция удаляет процесс, завершая его с помощью сигнала
SIGKILL, если процесс выполнял программу. Аргументом может быть процесс, имя процесса, буфер или имя буфера. (Буфер или имя буфера обозначает процесс, который возвращаетget-buffer-process, а отсутствующий аргумент process или значениеnilозначает, что следует завершить процесс текущего буфера.) Вызовdelete-processдля работающего процесса завершает его, обновляет состояние процесса и немедленно запускает обработчик состояния. Если процесс уже завершился, вызовdelete-processне влияет на его состояние и на запуск обработчика состояния (который произойдёт рано или поздно).Если объект процесса представляет сетевое, последовательное или канальное соединение, его состояние меняется на
closed; в противном случае оно меняется наsignal, если только процесс уже не завершился. См. process-status.(delete-process "*shell*") ⇒ nil
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Deleting-Processes.html