Spec-Zone.ru › Elisp

Удаление процессов

Удаление процесса немедленно разрывает соединение 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API