Spec-Zone.ru › Elisp

Доступ к другим процессам

Помимо доступа и управления процессами, являющимися подпроцессами текущей сессии Emacs, программы Emacs Lisp также могут получать доступ к другим процессам, выполняющимся на том же компьютере. Мы называем их системами процессов, чтобы отличать их от подпроцессов Emacs.

Emacs предоставляет несколько примитивов для доступа к системным процессам. Не все платформы поддерживают эти примитивы; на тех, которые не поддерживают, эти примитивы возвращают nil.

Функция: list-system-processes

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

Функция: process-attributes pid

Эта функция возвращает список атрибутов для процесса, указанного его идентификатором процесса pid. Каждая ассоциация в списке имеет вид (key . value), где key обозначает атрибут, а value — значение этого атрибута. Различные атрибуты key, которые может вернуть эта функция, перечислены ниже. Не все платформы поддерживают все эти атрибуты; если атрибут не поддерживается, его ассоциация не будет отображаться в возвращаемом списке.

euid

Эффективный идентификатор пользователя, который запустил процесс. Соответствующее значение value — число. Если процесс был запущен тем же пользователем, который выполняет текущую сессию Emacs, значение идентично тому, что возвращает user-uid (см. Идентификация пользователя).

user

Имя пользователя, соответствующее эффективному идентификатору пользователя процесса, строка.

egid

Идентификатор группы эффективного идентификатора пользователя, число.

group

Имя группы, соответствующее идентификатору группы эффективного пользователя, строка.

comm

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

state

Код состояния процесса. Это короткая строка, которая кодирует состояние планирования процесса. Вот список наиболее часто встречающихся кодов:

"D"

Непрерывный сон (обычно ввода-вывода)

"R"

Запуск

"S"

Прерывистый сон (ожидание какого-либо события)

"T"

Остановлено, например, сигналом управления задачами

"Z"

Зомби: процесс, завершивший работу, но не собранный его родителем

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

ppid

Идентификатор процесса родительского процесса, число.

pgrp

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

sess

Идентификатор сеанса процесса. Это число, которое является идентификатором процесса лидера сеанса процесса.

ttname

Строка, являющаяся именем контролирующего терминала процесса. В системах Unix и GNU это обычно имя файла соответствующего терминального устройства, такого как /dev/pts65.

tpgid

Числовой идентификатор группы процессов переднего плана, использующей терминал процесса.

minflt

Количество незначительных ошибок страниц, вызванных процессом с момента его начала. (Незначительные ошибки страницы — это те, которые не связаны с чтением с диска).

majflt

Количество основных ошибок страниц, вызванных процессом с момента его начала. (Основные ошибки страницы требуют чтения с диска и, следовательно, более дорогостоящие, чем незначительные ошибки страницы).

cminflt
cmajflt

Как minflt и majflt, но включают количество ошибок страницы для всех дочерних процессов данного процесса.

utime

Время, затраченное процессом в контексте пользователя, для выполнения кода приложения. Соответствующее значение value — временная метка Lisp (см. Время).

stime

Время, затраченное процессом в системном (ядерном) контексте для обработки системных вызовов. Соответствующее значение value — временная метка Lisp.

time

Сумма utime и stime. Соответствующее значение value — временная метка Lisp.

cutime
cstime
ctime

Как utime, stime и time, но включают время всех дочерних процессов данного процесса.

pri

Числовой приоритет процесса.

nice

Значение nice процесса, число. (Процессы с меньшими значениями nice планируются более благоприятно).

thcount

Количество потоков в процессе.

start

Время запуска процесса, как временная метка Lisp.

etime

Прошедшее время с момента запуска процесса, как временная метка Lisp.

vsize

Размер виртуальной памяти процесса, измеряемый в килобайтах.

rss

Размер резидентного набора процесса, количество килобайтов, занимаемых процессом в физической памяти компьютера.

pcpu

Процент времени процессора, используемого процессом с момента его запуска. Соответствующее значение value — число с плавающей запятой от 0 до 100.

pmem

Процент установленной на компьютере физической памяти, используемой резидентным набором процесса. Значение — число с плавающей запятой от 0 до 100.

args

Строка командной строки, с которой был запущен процесс. В этой строке отдельные аргументы командной строки разделяются пробелами; пробелы, которые встроены в аргументы, цитируются соответствующим образом для оболочки системы: экранируются символами обратной косой черты в GNU и Unix и заключаются в двойные кавычки в Windows. Таким образом, эту строку командной строки можно непосредственно использовать в таких примитивах, как shell-command.

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/System-Processes.html

Spec-Zone.ru

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