Информация о процессах
Несколько функций возвращают информацию о процессах.
- Команда: 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. Если необязательный аргумент querycurrent, эта функция игнорируетOMP_NUM_THREADS; если queryall, эта функция также подсчитывает процессоры, которые присутствуют в системе, но недоступны для текущего процесса.
- Функция: 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