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