модульный процесс
Модуль обработки процессов, используемый для управления ресурсами текущего процесса.
Эталонный метод:
1var process = require('process');
обрабатывать события
Объект модуля процессаEventEmitterЭкземпляры могут реагировать на события уровня процесса, регистрируя прослушиватели событий.
событие перед выходом
Когда задача fibjs пуста и не добавляется никакой дополнительной работы, событие 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.exitЗначение , переданное в метод exitCode
.
Сигнальное событие
Когда процесс 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
Измените текущую маску, Windows не поддерживает этот метод.
1static Integer process.umask(Integer mask);
Параметры звонка:
- mask: целое число, укажите новую маску
Результаты возврата:
- Integer, вернуться к предыдущей маске
Измените текущую маску, Windows не поддерживает этот метод.
1static Integer process.umask(String mask);
Параметры звонка:
- mask: строка, указывает новую маску, восьмеричный тип строки (например: «0664»).
Результаты возврата:
- Integer, вернуться к предыдущей маске
Возвращает текущую маску. Windows не поддерживает этот метод.
1static Integer process.umask();
Результаты возврата:
- Integer, возвращает текущее значение маски
hrtime
Возвращает высокоточное время системы. Это время не имеет ничего общего с текущим временем и используется только для высокоточного расчета времени.
1static Array process.hrtime(Array diff = []);
Параметры звонка:
- diff: Массив, начальное время, используемое для сравнения
Результаты возврата:
- Array, возвращает время синхронизации в формате [секунды, наносекунды]
exit
Выйдите из текущего процесса и верните код выхода в качестве результата процесса.
1static process.exit();
Выйти из текущего процесса и вернуть результат
1static process.exit(Integer code);
Параметры звонка:
- code: целое число, возвращает результат процесса
cwd
Возвращает текущий рабочий путь операционной системы
1static String process.cwd();
Результаты возврата:
- String, возвращает текущий системный путь
dlopen
Динамическая загрузка дополнений C++
1
2
3static process.dlopen(Object module,
String filename,
Integer flags = 1);
Параметры звонка:
- module: Объект, указывает загружаемый модуль.
- filename: строка, указывает имя файла модуля, который необходимо загрузить.
- flags: целое число, указывает способ загрузки модуля, значение по умолчанию — 1.
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
}
в:
- пользователь возвращает время, проведенное процессом в пользовательском коде
- система возвращает время, проведенное процессом в системном коде
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, возвращает указанный внутренний модуль
getgid
Запросить идентификатор группы текущего процесса
1static Integer process.getgid();
Результаты возврата:
- Integer, возвращает идентификатор группы текущего процесса
getuid
Запросить идентификатор пользователя текущего процесса
1static Integer process.getuid();
Результаты возврата:
- Integer, возвращает идентификатор пользователя текущего процесса
setgid
Установите идентификатор группы текущего процесса
1static process.setgid(Integer id);
Параметры звонка:
- id: целое число, укажите идентификатор группы, который нужно установить.
setuid
Установите идентификатор пользователя текущего процесса
1static process.setuid(Integer id);
Параметры звонка:
- id: целое число, укажите идентификатор пользователя, который будет установлен.
emitWarning
Выдавать пользовательские или специфичные для приложения предупреждения процесса. Эти события можно прослушать, добавив обработчик к событию «предупреждение».
1
2static 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
17const {
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
3static process.emitWarning(Value warning,
String type = "Warning",
String code = "");
Параметры звонка:
- warning: Значение, указывает предупреждение, которое будет выдано.
- type: строка, указывает имя типа выдаваемого предупреждения. По умолчанию: «Предупреждение»
- code: строка, указывает уникальный идентификатор выданного экземпляра предупреждения.
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
Строка, возвращает строку версии 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
Логическое значение, запросить, нормально ли соединен канал с родительским процессом.
1static readonly Boolean process.connected;