Информация о процессах
Несколько функций возвращают информацию о процессах.
- Команда: list-processes &optional query-only buffer
-
Эта команда выводит список всех живых процессов. Кроме того, в конце она удаляет все процессы со статусом ‘Exited’ или ‘Signaled’. Она возвращает
nil.Процессы отображаются в буфере с именем *Process List* (если вы не укажете другой буфер с помощью необязательного аргумента buffer); его основной режим — Process Menu mode.
Если query-only не-
nil, в список включаются только процессы, флаг запроса которых не-nil. См. Запрос перед выходом.
- Функция: process-list
-
Эта функция возвращает список всех процессов, которые не были удалены.
(process-list) ⇒ (#<process display-time> #<process shell>)
- Функция: num-processors &optional query
Эта функция возвращает число процессоров — положительное целое число. Каждая доступная единица выполнения потока считается процессором. По умолчанию в это число входят доступные процессоры; его можно изменить, задав
OMP_NUM_THREADSпеременную окружения OpenMP. Если необязательный аргумент query равенcurrent, эта функция игнорируетOMP_NUM_THREADS; если query равенall, функция также учитывает процессоры, установленные в системе, но недоступные текущему процессу.
- Функция: get-process name
-
Эта функция возвращает процесс с именем name (строка) или
nil, если такого процесса нет. Аргумент name также может быть объектом процесса; в этом случае возвращается он.(get-process "shell") ⇒ #<process shell>
- Функция: process-command process
-
Эта функция возвращает команду, выполненную для запуска process. Это список строк: первая строка — запущенная программа, остальные строки — аргументы, переданные программе. Для сетевого, последовательного подключения или подключения через канал возвращается либо
nil, что означает, что процесс выполняется, либоt(процесс остановлен).(process-command (get-process "shell")) ⇒ ("bash" "-i")
- Функция: process-contact process &optional key no-block
-
Эта функция возвращает информацию о том, как было настроено сетевое, последовательное подключение или подключение через канал. Если key равен
nil, для сетевого подключения возвращается(hostname service), для последовательного подключения —(port speed), а для подключения через канал —t. Для обычного дочернего процесса при вызове сnilkey функция всегда возвращаетt.Если key равен
t, возвращается полная информация о состоянии подключения, сервера, последовательного порта или канала, то есть список ключевых слов и значений, указанных вmake-network-process,make-serial-processилиmake-pipe-process, за исключением того, что некоторые значения отражают текущее состояние, а не заданные вами параметры.Для сетевого процесса значения включают (полный список см. в
make-network-process)::bufferСоответствующее значение — буфер процесса.
:filterСоответствующее значение — функция фильтра процесса. См. Функции фильтра процесса.
:sentinelСоответствующее значение — функция-сентинел процесса. См. Сентинелы: обнаружение изменений состояния процесса.
:remoteДля подключения — адрес удалённого узла в внутреннем формате.
:localЛокальный адрес во внутреннем формате.
:serviceДля сервера, если для service указано
t, это значение является фактическим номером порта.
:localи:remoteвключаются, даже если они не были явно указаны вmake-network-process.Список ключей для последовательного подключения см. в
make-serial-processиserial-process-configure. Список ключей для подключения через канал см. вmake-pipe-process.Если key — ключевое слово, функция возвращает соответствующее ему значение.
Если process — неблокирующий сетевой поток, настройка которого ещё не завершена, функция будет ждать её завершения. Если передан необязательный параметр no-block, функция вернёт
nilвместо ожидания.
- Функция: process-id process
Эта функция возвращает PID процесса process. Это целое число, отличающее процесс process от всех остальных процессов, выполняющихся на том же компьютере в данный момент. PID процесса назначается ядром операционной системы при запуске процесса и остаётся неизменным, пока процесс существует. Для сетевых, последовательных подключений и подключений через канал функция возвращает
nil.
- Функция: process-name process
Эта функция возвращает имя process в виде строки.
- Функция: process-status process-name
-
Эта функция возвращает статус process-name в виде символа. Аргумент process-name должен быть процессом, буфером или именем процесса (строкой).
Возможные значения для действующего подпроцесса:
runдля выполняющегося процесса.
stopдля остановленного, но возобновляемого процесса.
exitдля завершившегося процесса.
signalдля процесса, получившего фатальный сигнал.
openдля открытого сетевого, последовательного подключения или подключения через канал.
closedдля закрытого сетевого, последовательного подключения или подключения через канал. Закрытое подключение нельзя открыть повторно, хотя, возможно, удастся установить новое подключение к тому же адресу.
connectдля неблокирующего подключения, ожидающего завершения установки.
failedдля неблокирующего подключения, установка которого завершилась неудачно.
listenдля сетевого сервера, ожидающего подключения.
nilесли process-name не является именем существующего процесса.
(process-status (get-buffer "*shell*")) ⇒ runДля сетевого, последовательного подключения или подключения через канал
process-statusвозвращает один из символовopen,stopилиclosed. Последний означает, что другая сторона закрыла подключение или Emacs выполнилdelete-process. Значениеstopозначает, что для подключения был вызванstop-process.
- Функция: process-live-p process
Эта функция возвращает не-
nil, если process активен. Процесс считается активным, если его статус —run,open,listen,connectилиstop.
- Функция: process-type process
Эта функция возвращает символ
networkдля сетевого подключения или сервера,serialдля подключения к последовательному порту,pipeдля подключения через канал илиrealдля подпроцесса, созданного для запуска программы.
- Функция: process-exit-status process
Эта функция возвращает код завершения process или номер сигнала, который его завершил. (Чтобы определить, что именно возвращено, используйте результат
process-status.) Если process ещё не завершился, значение равно 0. Для уже закрытых сетевых, последовательных подключений и подключений через канал значение равно 0 или 256 в зависимости от того, было ли подключение закрыто штатно или аварийно.
- Функция: process-tty-name process &optional stream
-
Эта функция возвращает имя терминала, который process использует для связи с Emacs, или
nil, если вместо pty используются каналы (см.process-connection-typeв разделе Создание асинхронного процесса). По умолчанию функция возвращает имя терминала, если хотя бы один из стандартных потоков process использует терминал. Если stream равенstdin,stdoutилиstderr, функция возвращает имя терминала (илиnil, как описано выше), который process использует именно для этого потока. Это позволяет определить, использует ли конкретный поток канал или pty.Если process представляет программу, работающую на удалённом узле, функция возвращает имя локального терминала, связывающегося с process; имя терминала, используемого этой программой на удалённом узле, можно получить из свойства процесса
remote-tty. Если process представляет сетевое, последовательное подключение или подключение через канал, функция всегда возвращаетnil.
- Функция: process-coding-system process
-
Эта функция возвращает конс-ячейку
(decode . encode), описывающую системы кодирования, используемые для декодирования вывода от process и кодирования ввода для него (см. Системы кодирования).
- Функция: set-process-coding-system process &optional decoding-system encoding-system
Эта функция задаёт системы кодирования, которые будут использоваться для последующего вывода от process и ввода для него. Для декодирования вывода подпроцесса используется decoding-system, а для кодирования ввода подпроцесса — encoding-system.
У каждого процесса также есть список свойств, в котором можно хранить различные связанные с ним значения.
- Функция: process-get process propname
Эта функция возвращает значение свойства propname процесса process.
- Функция: process-put process propname value
Эта функция устанавливает значение свойства propname процесса process равным value.
- Функция: process-plist process
Эта функция возвращает список свойств процесса process.
- Функция: set-process-plist process plist
Эта функция задаёт список свойств процесса process, равный plist.
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/Process-Information.html