Модуль базовый модуль

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

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

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

1
var process = require('process');

Событие процесса

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

beforeExit событие

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

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

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

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

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

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

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

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

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

Когда процесс fibjs получает сигнал, он запускает событие signal.Теперь поддерживаются сигналы 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(); });

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

  • СИГНАЛ: когда терминал запущен, он может поддерживаться всеми платформами, и обычно его можно запускать с помощью 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

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

1
static process.exit();

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

1
static process.exit(Integer code);

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

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

cwd

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

1
static String process.cwd();

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

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

chdir

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

1
static process.chdir(String directory);

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

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

uptime

Запросить время работы запущенной среды в секундах

1
static Number process.uptime();

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

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

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 : Function, определяет функцию, выполняемую волокном
  • args : ..., последовательность переменных параметров, эта последовательность будет передана функции в волокне

binding

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

1
static Value process.binding(String name);

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

  • name : String, укажите name запрашиваемого внутреннего модуля

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

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

open

Запустите указанную командную строку, возьмите на себя потоки ввода и вывода процесса и верните объект процесса

1 2 3
static SubProcess process.open(String command, Array args, Object opts = {});

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

  • command : String, укажите командную строку для запуска
  • args : Array, укажите список параметров для запуска
  • opts : Object, укажите параметры для запуска

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

  • SubProcess , возвращает объект процесса, содержащий SubProcess результат

Опции, поддерживаемые opts, следующие:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Запустите указанную командную строку, возьмите на себя потоки ввода и вывода процесса и верните объект процесса

1 2
static SubProcess process.open(String command, Object opts = {});

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

  • command : String, укажите командную строку для запуска
  • opts : Object, укажите параметры для запуска

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

  • SubProcess , возвращает объект процесса, содержащий SubProcess результат

Опции, поддерживаемые opts, следующие:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

start

Запустите указанную командную строку и верните объект процесса

1 2 3
static SubProcess process.start(String command, Array args, Object opts = {});

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

  • command : String, укажите командную строку для запуска
  • args : Array, укажите список параметров для запуска
  • opts : Object, укажите параметры для запуска

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

  • SubProcess , возвращает объект процесса, содержащий SubProcess результат

Опции, поддерживаемые opts, следующие:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Запустите указанную командную строку и верните объект процесса

1 2
static SubProcess process.start(String command, Object opts = {});

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

  • command : String, укажите командную строку для запуска
  • opts : Object, укажите параметры для запуска

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

  • SubProcess , возвращает объект процесса, содержащий SubProcess результат

Опции, поддерживаемые opts, следующие:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

run

Запустите указанную командную строку и верните код завершения процесса

1 2 3
static Integer process.run(String command, Array args, Object opts = {}) async;

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

  • command : String, укажите командную строку для запуска
  • args : Array, укажите список параметров для запуска
  • opts : Object, укажите параметры для запуска

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

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

Опции, поддерживаемые opts, следующие:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Запустите указанную командную строку и верните код завершения процесса

1 2
static Integer process.run(String command, Object opts = {}) async;

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

  • command : String, укажите командную строку для запуска
  • opts : Object, укажите параметры для запуска

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

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

Опции, поддерживаемые opts, следующие:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

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

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

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

1
static readonly String process.execPath;

env

Object, запросить переменные среды текущего процесса

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

File , запросить стандартный объект ввода текущего процесса

1
static readonly File process.stdin;

stdout

File , запросить стандартный объект вывода текущего процесса

1
static readonly File process.stdout;

stderr

File , запросить стандартный объект вывода ошибок текущего процесса

1
static readonly File process.stderr;

exitCode

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

1
static Integer process.exitCode;