Spec-Zone.ru › Elisp

Информация о процессах

Несколько функций возвращают информацию о процессах.

Команда: list-processes &опционально буфер только для запросов

Эта команда отображает список всех активных процессов. Кроме того, она, наконец, удаляет любой процесс, статус которого был ‘Exited’ или ‘Signaled’. Она возвращает nil.

Процессы отображаются в буфере с именем *Список процессов* (если вы не укажете иначе с помощью необязательного аргумента buffer), режим которого — Режим меню процессов.

Если query-only не nil, она перечисляет только процессы, у которых флаг запроса не nil. См. Запрос перед завершением.

Функция: process-list

Эта функция возвращает список всех процессов, которые не были удалены.

(process-list)
     ⇒ (#<process display-time> #<process shell>)
Функция: num-processors &опционально запрос

Эта функция возвращает количество процессоров, положительное целое число. Каждый используемый процессорный блок выполнения потоков считается процессором. По умолчанию подсчет включает количество доступных процессоров, которое вы можете изменить, установив переменную среды OMP_NUM_THREADS переменную окружения OpenMP. Если необязательный аргумент query current, эта функция игнорирует OMP_NUM_THREADS; если query all, эта функция также подсчитывает процессоры, которые присутствуют в системе, но недоступны для текущего процесса.

Функция: get-process имя

Эта функция возвращает процесс с именем имя (строка) или nil если такого нет. Аргумент имя также может быть объектом процесса, в этом случае он и возвращается.

(get-process "shell")
     ⇒ #<process shell>
Функция: process-command процесс

Эта функция возвращает команду, которая была выполнена для запуска процесс. Это список строк, первая строка — это запущенная программа, а остальные — аргументы, переданные программе. Для сетевого, последовательного или конвейного соединения это либо nil, что означает, что процесс работает, или t (процесс остановлен).

(process-command (get-process "shell"))
     ⇒ ("bash" "-i")
Функция: process-contact процесс &опционально ключ без-блокировки

Эта функция возвращает информацию о том, как было установлено сетевое, последовательное или конвейное соединение. Когда ключ nil, она возвращает (hostname service) для сетевого соединения, (port speed) для последовательного соединения и t для конвейного соединения. Для обычного дочернего процесса эта функция всегда возвращает t при вызове с nil ключом.

Если ключ t, значением является полная информация о состоянии соединения, сервера, последовательного порта или конвейпа; то есть, список ключевых слов и значений, указанных в make-network-process, make-serial-process, или make-pipe-process, за исключением того, что некоторые значения представляют текущее состояние, а не то, что вы указали.

Для сетевого процесса значения включают (см. make-network-process для полного списка):

:buffer

Соответствующее значение — буфер процесса.

:filter

Соответствующее значение — функция фильтрации процесса. См. Функции фильтрации.

:sentinel

Соответствующее значение — функция сторожа процесса. См. Сторожа.

:remote

В соединении — адрес удалённого узла в внутреннем формате.

:local

Локальный адрес в внутреннем формате.

:service

На сервере, если вы указали t для service, это значение — фактический номер порта.

:local и :remote включены даже если они не были явно указаны в make-network-process.

Для последовательного соединения см. make-serial-process и serial-process-configure для списка ключей. Для конвейного соединения см. make-pipe-process для списка ключей.

Если ключ является ключевым словом, функция возвращает значение, соответствующее этому ключевому слову.

Если процесс является неблокируемым сетевым потоком, который ещё не полностью настроен, то эта функция будет ожидать, пока это не произойдёт. Если задан необязательный параметр без-блокировки, эта функция вернёт nil вместо ожидания.

Функция: process-id процесс

Эта функция возвращает PID процесса. Это целое число, которое отличает процесс процесс от всех других процессов, работающих на том же компьютере в данный момент. PID процесса выбирается ядром операционной системы при запуске процесса и остаётся постоянным, пока процесс существует. Для сетевых, последовательных и конвейных соединений эта функция возвращает nil.

Функция: process-name процесс

Эта функция возвращает имя процесса в виде строки.

Функция: process-status имя-процесса

Эта функция возвращает статус имя-процесса в виде символа. Аргумент имя-процесса должен быть процессом, буфером или именем процесса (строкой).

Возможные значения для фактического дочернего процесса:

run

для процесса, который работает.

stop

для процесса, который остановлен, но может быть продолжен.

exit

для процесса, который завершил работу.

signal

для процесса, который получил фатальный сигнал.

open

для сетевого, последовательного или конвейного соединения, которое открыто.

closed

для сетевого, последовательного или конвейного соединения, которое закрыто. После закрытия соединения его нельзя открыть повторно, хотя вы можете открыть новое соединение с тем же местом.

connect

для неблокирующего соединения, которое ожидает завершения.

failed

для неблокирующего соединения, которое не удалось завершить.

listen

для сетевого сервера, который прослушивает.

nil

если имя-процесса не является именем существующего процесса.

(process-status (get-buffer "*shell*"))
     ⇒ run

Для сетевого, последовательного или конвейного соединения, process-status возвращает один из символов open, stop, или closed. Последнее означает, что другая сторона закрыла соединение, или Emacs выполнил delete-process. Значение stop означает, что stop-process был вызван по отношению к соединению.

Функция: process-live-p процесс

Эта функция возвращает не-nil если процесс жив. Процесс считается живым, если его статус run, open, listen, connect или stop.

Функция: process-type процесс

Эта функция возвращает символ network для сетевого соединения или сервера, serial для последовательного порта, pipe для конвейного соединения или real для дочернего процесса, созданного для запуска программы.

Функция: process-exit-status процесс

Эта функция возвращает код завершения процесс или номер сигнала, который его убил. (Используйте результат process-status чтобы определить, какой это из них.) Если процесс ещё не завершился, значение равно 0. Для сетевых, последовательных и конвейных соединений, которые уже закрыты, значение либо 0, либо 256, в зависимости от того, было ли соединение закрыто нормально или аномально.

Функция: process-tty-name процесс

Эта функция возвращает имя терминала, которое процесс использует для связи с Emacs—или nil если вместо pty используются конвейпы (см. process-connection-type в Асинхронные процессы). Если процесс представляет программу, работающую на удалённом хосте, имя терминала, используемое этой программой на удалённом хосте, предоставляется как свойство процесса remote-tty. Если процесс представляет сетевое, последовательное или конвейное соединение, значение равно nil.

Функция: process-coding-system процесс

Эта функция возвращает список (decode . encode), описывающий используемые кодовые системы для декодирования вывода из и кодирования ввода в процесс (см. Кодировки).

Функция: set-process-coding-system процесс &опционально декодирование кодирование

Эта функция задаёт используемые кодовые системы для последующего вывода из и ввода в процесс. Она будет использовать декодирование для декодирования вывода дочернего процесса, и кодирование для кодирования ввода дочернего процесса.

Каждый процесс также имеет список свойств, который можно использовать для хранения различных значений, связанных с процессом.

Функция: process-get процесс имя-свойства

Эта функция возвращает значение свойства имя-свойства процесса процесс.

Функция: process-put процесс имя-свойства значение

Эта функция устанавливает значение свойства имя-свойства процесса процесс в значение.

Функция: process-plist процесс

Эта функция возвращает список свойств процесса процесс.

Функция: set-process-plist процесс список-свойств

Эта функция устанавливает список свойств процесса процесс в список-свойств.

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/Process-Information.html

Spec-Zone.ru

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