процесс модуля
Модуль обработки процессов для управления ресурсами текущего процесса
Справочный метод:
1var process = require('process');
событие процесса
Объект модуля процессаEventEmitterЭкземпляры могут реагировать на события уровня процесса, регистрируя прослушиватели событий.
событие перед выходом
Событие beforeExit
будет
1process.on('beforeExit', exitCode => {});
Обычно процесс fibjs завершается, если в очередь задач не добавляется дополнительная работа. Однако если в функции обратного вызова обработчика beforeExit
события , например открытие волокна, процесс fibjs будет продолжать выполняться.
process.exitCodeФункция обратного вызова передается прослушивателю beforeExit
событий . Если процесс вот-вот завершится по явной причине, такой как прямой вызовprocess.exitИли сгенерируйте неперехваченное исключение, beforeExit
событие не будет запущено.
выходное событие
Когда fibjs завершает работу, событие exit
будет , и как только все exit
слушатели, связанные с событием, будут выполнены, процесс завершится.
1process.on('exit', exitCode => {});
exit
Функция обратного вызова прослушивателя событий, только с одним входным параметром, значение этого параметра может бытьprocess.exitCodeзначение свойства , или вызовprocess.exitexitCode
Значение, переданное методу .
Сигнальное событие
Когда процесс fibjs получает сигнал, он инициирует сигнальное событие.В настоящее время поддерживаются сигналы SIGINT и SIGTERM. Имя каждого события в верхнем регистре имени сигнала (например, событие 'SIGINT' для сигнала SIGINT).
Сигнальные события отличаются от других событий процесса.Сигнальные события являются упреждающими.При возникновении сигнала, независимо от текущегоioДействия или операции JavaScript вызовут соответствующие события как можно скорее. Например, вы можете использовать следующий код, чтобы прервать текущее приложение и вывести статус выполнения:
1
2
3
4
5
6var 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
Измените текущий umask, Windows не поддерживает этот метод
1static Integer process.umask(Integer mask);
Параметры вызова:
- mask: Целое число, укажите новую маску
Возвращаемый результат:
- Integer, возвращает предыдущую маску
Измените текущий umask, Windows не поддерживает этот метод
1static Integer process.umask(String mask);
Параметры вызова:
- mask: Строка, указывает новую маску, восьмеричный тип строки (например: "0664")
Возвращаемый результат:
- Integer, возвращает предыдущую маску
Возвращает текущий umask, этот метод не поддерживается в Windows
1static Integer process.umask();
Возвращаемый результат:
- Integer, возвращает текущее значение маски
hrtime
Возвращает высокоточное время системы, которое не имеет ничего общего с текущим временем и используется только для высокоточного хронометража
1static Array process.hrtime(Array diff = []);
Параметры вызова:
- diff: Массив, начальное время для сравнения
Возвращаемый результат:
- Array, возвращает время в формате [секунды, наносекунды]
exit
Выйдите из текущего процесса и верните exitCode в качестве результата процесса.
1static process.exit();
Выйти из текущего процесса и вернуть результат
1static process.exit(Integer code);
Параметры вызова:
- code: целое число, возвращает результат процесса
cwd
Возвращает текущий рабочий путь операционной системы
1static String process.cwd();
Возвращаемый результат:
- String, возвращает текущий системный путь
chdir
Изменить текущий рабочий путь операционной системы
1static process.chdir(String directory);
Параметры вызова:
- directory: Строка, указывает новый путь для установки
uptime
Время выполнения среды выполнения запроса, в секундах
1static Number process.uptime();
Возвращаемый результат:
- Number, возвращает значение, представляющее время
cpuUsage
Запросите время, затрачиваемое текущим процессом в пользовательском и системном коде, в виде микросекундного значения (миллионные доли секунды).
1static Object process.cpuUsage(Object previousValue = {});
Параметры вызова:
- previousValue: Объект, указывает время последнего запроса
Возвращаемый результат:
- Object, возвращает отчет со временем
Отчет о памяти дает результаты, подобные следующим:
1
2
3
4{
"user": 132379,
"system": 50507
}
в:
- user возвращает время, которое процесс провел в пользовательском коде
- system возвращает время, которое процесс провел в системном коде
memoryUsage
Запрос текущего отчета об использовании памяти процесса
1static Object process.memoryUsage();
Возвращаемый результат:
- Object, возвращает отчет, содержащий память
Отчет о памяти дает результаты, подобные следующим:
1
2
3
4
5{
"rss": 8622080,
"heapTotal": 4083456,
"heapUsed": 1621800
}
в:
- rss возвращает размер физической памяти, в настоящее время занятой процессом
- heapTotal возвращает размер кучи памяти движка v8.
- heapUsed возвращает размер динамической памяти, которую использует движок v8.
nextTick
запустить волокно
1
2static process.nextTick(Function func,
...args);
Параметры вызова:
- func: Функция, указывает функцию, которая будет выполняться волокном.
- args: ..., последовательность аргументов с переменным числом аргументов, которые будут переданы функции в файбере
binding
Получить внутренний модуль с указанным именем
1static Value process.binding(String name);
Параметры вызова:
- name: Строка, указывает имя внутреннего модуля для запроса
Возвращаемый результат:
- Value, возвращает указанный внутренний модуль
disconnect
закрыть канал ipc родительским процессом
1static process.disconnect();
send
Отправить сообщение родительскому процессу
1static process.send(Value msg);
Параметры вызова:
- msg: значение, указывает сообщение для отправки
статические свойства
argv
Массив, возвращает аргументы командной строки текущего процесса
1static readonly Array process.argv;
execArgv
Массив, возвращает специальные параметры командной строки текущего процесса, которые используются fibjs для установки рабочей среды.
1static readonly Array process.execArgv;
version
String, возвращает строку версии fibjs
1static readonly String process.version;
versions
Объект, возвращает информацию о версии fibjs и компонентов.
1static readonly Object process.versions;
execPath
Строка, запросите полный путь к текущему исполняемому файлу
1static readonly String process.execPath;
env
Объект, запросите переменные среды текущего процесса
1static readonly Object process.env;
arch
Строка, запросите текущую среду процессора, возможные результаты: «amd64», «arm», «arm64», «ia32».
1static readonly String process.arch;
platform
Строка, запросите название текущей платформы, возможные результаты: «darwin», «freebsd», «linux» или «win32».
1static readonly String process.platform;
pid
Целое число, прочитать идентификатор процесса, на который указывает текущий объект
1static readonly Integer process.pid;
ppid
Целое число, прочитать идентификатор родительского процесса, на который указывает текущий объект
1static readonly Integer process.ppid;
stdin
Stream, запросить текущий объект стандартного ввода процесса, вttyЧжунвэйTTYInputStream, в противном случаеStream
1static readonly Stream process.stdin;
stdout
Stream, запросить текущий объект стандартного вывода процесса, вttyЧжунвэйTTYOutputStream, в противном случаеStream
1static readonly Stream process.stdout;
stderr
Stream, запросите объект вывода стандартной ошибки текущего процесса, вttyЧжунвэйTTYOutputStream, в противном случаеStream
1static readonly Stream process.stderr;
exitCode
Целое число, запрос и установка кода выхода текущего процесса
1static Integer process.exitCode;
connected
Boolean, запрос, нормально ли подключен канал к родительскому процессу
1static readonly Boolean process.connected;