Несколько функций возвращают информацию о процессах.
Эта команда отображает список всех живых процессов. Кроме того, она окончательно удаляет все процессы, статус которых был ‘Exited’ (Завершён) или ‘Signaled’ (Завершён по сигналу). Возвращает nil.
Процессы отображаются в буфере с именем *Process List* (если вы не укажете иное с помощью необязательного аргумента buffer), основной режим которого — режим меню процессов (Process Menu mode).
Если query-only не равен nil, отображаются только процессы, флаг запроса которых не равен nil. См. Запрос перед завершением.
Эта функция возвращает список всех процессов, которые не были удалены.
(process-list)
⇒ (#<process display-time> #<process shell>)
Эта функция возвращает количество процессоров — положительное целое число. Каждый используемый поток выполнения считается процессором. По умолчанию подсчёт включает количество доступных процессоров, которое вы можете переопределить, установив OMP_NUM_THREADS — переменную окружения OpenMP. Если необязательный аргумент query равен current, эта функция игнорирует OMP_NUM_THREADS; если query равен all, эта функция также подсчитывает процессоры, которые есть в системе, но недоступны текущему процессу.
Эта функция возвращает процесс с именем name (строка) или nil, если такого нет. Аргумент name также может быть объектом процесса; в этом случае он же и возвращается.
(get-process "shell")
⇒ #<process shell>
Эта функция возвращает команду, которая была запущена для запуска process. Это список строк, первая строка — исполняемая программа, остальные строки — аргументы, переданные программе. Для сетевого, последовательного или канального соединения возвращается либо nil (процесс работает), либо t (процесс остановлен).
(process-command (get-process "shell"))
⇒ ("bash" "-i")
Эта функция возвращает информацию о том, как было установлено сетевое, последовательное или канальное соединение. Когда key равен nil, возвращается (hostname service) для сетевого соединения, (port speed) для последовательного соединения и t для канального соединения. Для обычного дочернего процесса эта функция всегда возвращает t при вызове с key равным nil.
Если key равен 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.
Если key является ключевым словом, функция возвращает значение, соответствующее этому ключевому слову.
Если process является неблокирующим сетевым потоком, который ещё полностью не настроен, эта функция будет блокироваться до завершения настройки. Если задан необязательный параметр no-block, эта функция вернёт nil вместо блокировки.
Эта функция возвращает PID (идентификатор) процесса process. Это целое число, которое отличает процесс process от всех других процессов, работающих на том же компьютере в текущий момент. PID процесса выбирается ядром операционной системы при запуске процесса и остаётся постоянным, пока процесс существует. Для сетевых, последовательных и канальных соединений эта функция возвращает nil.
Эта функция возвращает имя процесса process в виде строки.
Эта функция возвращает состояние 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.
Эта функция возвращает не nil, если process жив. Процесс считается живым, если его статус — run, open, listen, connect или stop.
Эта функция возвращает символ network для сетевого соединения или сервера, serial для соединения через последовательный порт, pipe для канального соединения или real для дочернего процесса, созданного для запуска программы.
Эта функция возвращает код завершения процесса process или номер сигнала, который его завершил. (Используйте результат process-status, чтобы определить, что именно возвращено.) Если process ещё не завершился, значение равно 0. Для сетевых, последовательных и канальных соединений, которые уже закрыты, значение равно 0 или 256, в зависимости от того, было ли соединение закрыто нормально или аномально.
Эта функция возвращает имя терминала, которое process использует для связи с Emacs, или nil, если вместо псевдотерминала (pty) используются каналы (см. process-connection-type в Создание асинхронного процесса). По умолчанию эта функция возвращает имя терминала, если какой-либо из стандартных потоков process использует терминал. Если stream равен одному из значений stdin, stdout или stderr, эта функция возвращает имя терминала (или nil, как указано выше), которое process использует именно для этого потока. Это позволяет определить, использует ли конкретный поток канал или псевдотерминал.
Если process представляет программу, работающую на удалённом хосте, эта функция возвращает локальное имя терминала, через которое осуществляется связь с process; имя терминала, используемое этой программой на удалённом хосте, можно получить через свойство процесса remote-tty. Если process представляет сетевое, последовательное или канальное соединение, эта функция всегда возвращает nil.
Эта функция возвращает ячейку cons (decode . encode), описывающую кодировки, используемые для декодирования вывода из process и кодирования ввода в process (см. Системы кодирования).
Эта функция задаёт кодировки для последующего вывода из process и ввода в process. Она будет использовать decoding-system для декодирования вывода дочернего процесса и encoding-system для кодирования ввода в дочерний процесс.
Каждый процесс также имеет список свойств (property list), который можно использовать для хранения различных значений, связанных с процессом.
Эта функция возвращает значение свойства propname процесса process.
Эта функция устанавливает значение свойства propname процесса process равным value.
Эта функция возвращает список свойств (plist) процесса process.
Эта функция устанавливает список свойств процесса process равным plist.