Базовый модуль модуля

модульный процесс

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

Эталонный метод:

1
var process = require('process');

обрабатывать события

Объект модуля процессаEventEmitterЭкземпляры могут реагировать на события уровня процесса, регистрируя прослушиватели событий.

событие перед выходом

Когда задача fibjs пуста и не добавляется никакой дополнительной работы, событие beforeExitбудет запущено.

1
process.on('beforeExit', exitCode => {});

Обычно, если в очередь задач не добавляется никакая дополнительная работа, процесс fibjs завершается. Но если beforeExitв функции обратного вызова прослушивателя, привязанного к событию, запускается новая задача, например, запуск оптоволокна, то процесс fibjs продолжит работу.

process.exitCodeПередается как единственное значение параметра в beforeExitфункцию обратного вызова прослушивателя событий. Если процесс вот-вот завершится по явной причине, например, из-за прямого вызоваprocess.exitИли выдайте неперехваченное исключение, и beforeExitсобытие не будет вызвано.

выходное событие

Когда fibjs завершает работу, событие exitзапускается. Как только все exitслушатели, привязанные к событию, завершат выполнение, процесс завершится.

1
process.on('exit', exitCode => {});

exitФункция обратного вызова прослушивателя событий имеет только один входной параметр.Значение этого параметра может бытьprocess.exitCodeзначение атрибута или вызовитеprocess.exitЗначение , переданное в метод exitCode.

Сигнальное событие

Когда процесс fibjs получает сигнал, срабатывает сигнальное событие. В настоящее время поддерживаются сигналы SIGINT и SIGTERM. Имя каждого события выражается прописными буквами имени сигнала (например, событие SIGINT соответствует сигналу SIGINT).

События сигнала отличаются от других событий процесса. События сигнала вытесняются. При возникновении сигнала независимо от текущегоioОперации, будь то операции JavaScript, как можно скорее вызовут соответствующее событие. Например, вы можете использовать следующий код, чтобы прервать работу текущего приложения и вывести статус работы:

1 2 3 4 5 6
var coroutine = require('coroutine'); process.on('SIGINT', () => { coroutine.fibers.forEach(f => console.error("Fiber %d:\n%s", f.id, f.stack)); process.exit(); });

Названия сигналов и их значения следующие:

  • SIGINT: при работе в терминале он может поддерживаться всеми платформами и обычно вызывается нажатием CTRL+C.
  • SIGTERM: этот сигнал срабатывает, когда процесс завершается. Не поддерживается в Windows.

статическая функция

umask

Измените текущую маску, Windows не поддерживает этот метод.

1
static Integer process.umask(Integer mask);

Параметры звонка:

  • mask: целое число, укажите новую маску

Результаты возврата:

  • Integer, вернуться к предыдущей маске

Измените текущую маску, Windows не поддерживает этот метод.

1
static Integer process.umask(String mask);

Параметры звонка:

  • mask: строка, указывает новую маску, восьмеричный тип строки (например: «0664»).

Результаты возврата:

  • Integer, вернуться к предыдущей маске

Возвращает текущую маску. Windows не поддерживает этот метод.

1
static Integer process.umask();

Результаты возврата:

  • Integer, возвращает текущее значение маски

hrtime

Возвращает высокоточное время системы. Это время не имеет ничего общего с текущим временем и используется только для высокоточного расчета времени.

1
static Array process.hrtime(Array diff = []);

Параметры звонка:

  • diff: Массив, начальное время, используемое для сравнения

Результаты возврата:

  • Array, возвращает время синхронизации в формате [секунды, наносекунды]

exit

Выйдите из текущего процесса и верните код выхода в качестве результата процесса.

1
static process.exit();

Выйти из текущего процесса и вернуть результат

1
static process.exit(Integer code);

Параметры звонка:

  • code: целое число, возвращает результат процесса

cwd

Возвращает текущий рабочий путь операционной системы

1
static String process.cwd();

Результаты возврата:

  • String, возвращает текущий системный путь

dlopen

Динамическая загрузка дополнений C++

1 2 3
static process.dlopen(Object module, String filename, Integer flags = 1);

Параметры звонка:

  • module: Объект, указывает загружаемый модуль.
  • filename: строка, указывает имя файла модуля, который необходимо загрузить.
  • flags: целое число, указывает способ загрузки модуля, значение по умолчанию — 1.

chdir

Изменить текущий рабочий путь операционной системы

1
static process.chdir(String directory);

Параметры звонка:

  • directory: строка, укажите новый путь настройки

uptime

Запрос времени работы рабочей среды в секундах

1
static Number process.uptime();

Результаты возврата:

  • Number, возвращает числовое значение, представляющее время

cpuUsage

Запрос времени, затраченного текущим процессом в пользовательском и системном коде, значение представляет собой значение микросекунды (миллионные доли секунды)

1
static Object process.cpuUsage(Object previousValue = {});

Параметры звонка:

  • previousValue: Объект, указывает время последнего запроса.

Результаты возврата:

  • Object, возвращает отчет, содержащий время

Отчет о памяти дает результаты, подобные следующим:

1 2 3 4
{ "user": 132379, "system": 50507 }

в:

  • пользователь возвращает время, проведенное процессом в пользовательском коде
  • система возвращает время, проведенное процессом в системном коде

memoryUsage

Запросить отчет об использовании памяти текущего процесса

1
static Object process.memoryUsage();

Результаты возврата:

  • Object, возвращает отчет, содержащий память

Отчет о памяти дает результаты, подобные следующим:

1 2 3 4 5
{ "rss": 8622080, "heapTotal": 4083456, "heapUsed": 1621800 }

в:

  • rss возвращает текущий размер физической памяти, занимаемой процессом.
  • heapTotal возвращает размер кучи памяти движка v8.
  • heapUsed возвращает размер кучи, используемый движком v8.

nextTick

запустить оптоволокно

1 2
static process.nextTick(Function func, ...args);

Параметры звонка:

  • func: Функция, укажите функцию, выполняемую волокном.
  • args: ..., переменная последовательность аргументов, которая будет передана функции внутри волокна

binding

Получить внутренний модуль с указанным именем

1
static Value process.binding(String name);

Параметры звонка:

  • name: строка, указывает имя внутреннего модуля, который будет запрошен.

Результаты возврата:

  • Value, возвращает указанный внутренний модуль

getgid

Запросить идентификатор группы текущего процесса

1
static Integer process.getgid();

Результаты возврата:

  • Integer, возвращает идентификатор группы текущего процесса

getuid

Запросить идентификатор пользователя текущего процесса

1
static Integer process.getuid();

Результаты возврата:

  • Integer, возвращает идентификатор пользователя текущего процесса

setgid

Установите идентификатор группы текущего процесса

1
static process.setgid(Integer id);

Параметры звонка:

  • id: целое число, укажите идентификатор группы, который нужно установить.

setuid

Установите идентификатор пользователя текущего процесса

1
static process.setuid(Integer id);

Параметры звонка:

  • id: целое число, укажите идентификатор пользователя, который будет установлен.

emitWarning

Выдавать пользовательские или специфичные для приложения предупреждения процесса. Эти события можно прослушать, добавив обработчик к событию «предупреждение».

1 2
static process.emitWarning(Value warning, Object options);

Параметры звонка:

  • warning: Значение, указывает предупреждение, которое будет выдано.
  • options: Объект, параметры для указания предупреждений.

    Опции включают следующее:

1 2 3 4 5
{ "type": "Warning", // specifies the name of the type of warning issued. Default value: 'Warning' "code": "", // specify the unique identifier of the warning instance issued "detail": "" // specify additional text for warnings }

Как это использовать:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
const { emitWarning } = require('process'); // Emit a warning with a code and additional detail. emitWarning('Something happened!', { code: 'MY_WARNING', detail: 'This is some additional information', }); process.on('warning', (warning) => { console.warn(warning.name); // 'Warning' console.warn(warning.message); // 'Something happened!' console.warn(warning.code); // 'MY_WARNING' console.warn(warning.stack); // Stack trace console.warn(warning.detail); // 'This is some additional information' });

Выдавать пользовательские или специфичные для приложения предупреждения процесса. Эти события можно прослушать, добавив обработчик к событию «предупреждение».

1 2 3
static process.emitWarning(Value warning, String type = "Warning", String code = "");

Параметры звонка:

  • warning: Значение, указывает предупреждение, которое будет выдано.
  • type: строка, указывает имя типа выдаваемого предупреждения. По умолчанию: «Предупреждение»
  • code: строка, указывает уникальный идентификатор выданного экземпляра предупреждения.

disconnect

Закройте канал ipc родительского процесса.

1
static process.disconnect();

send

Отправьте сообщение родительскому процессу

1
static process.send(Value msg);

Параметры звонка:

  • msg: Значение, указывает сообщение для отправки.

статические свойства

argv

Массив, возвращает параметры командной строки текущего процесса.

1
static readonly Array process.argv;

execArgv

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

1
static readonly Array process.execArgv;

version

Строка, возвращает строку версии fibjs.

1
static readonly String process.version;

versions

Объект, возвращает информацию о версии fibjs и компонентов.

1
static readonly Object process.versions;

execPath

Строка, запросите полный путь к текущему исполняемому файлу.

1
static readonly String process.execPath;

env

Объект, запрос переменных среды текущего процесса

1
static readonly Object process.env;

arch

Строка, запрос текущей среды ЦП, возможные результаты: «amd64», «arm», «arm64», «ia32».

1
static readonly String process.arch;

platform

Строка, запросите имя текущей платформы, возможные результаты: «darwin», «freebsd», «linux» или «win32».

1
static readonly String process.platform;

pid

Целое число, прочитайте идентификатор процесса, на который указывает текущий объект.

1
static readonly Integer process.pid;

ppid

Целое число, прочитайте идентификатор родительского процесса, на который указывает текущий объект.

1
static readonly Integer process.ppid;

stdin

Stream, запросите объект стандартного ввода текущего процесса, вttyЧжунвэйTTYInputStream, в противном случаеStream

1
static readonly Stream process.stdin;

stdout

Stream, запросите объект стандартного вывода текущего процесса, вttyЧжунвэйTTYOutputStream, в противном случаеStream

1
static readonly Stream process.stdout;

stderr

Stream, запросить объект вывода стандартных ошибок текущего процесса, вttyЧжунвэйTTYOutputStream, в противном случаеStream

1
static readonly Stream process.stderr;

exitCode

Целое число, запрос и установка кода завершения текущего процесса

1
static Integer process.exitCode;

connected

Логическое значение, запросить, нормально ли соединен канал с родительским процессом.

1
static readonly Boolean process.connected;