Модульный процесс
Модуль обработки процессов для управления ресурсами текущего процесса
Эталонный метод:
1var process = require('process');
Событие процесса
Объект модуля процесса - это экземпляр EventEmitter , который может реагировать на события уровня процесса, регистрируя прослушиватели событий.
beforeExit событие
Когда задача fibjs пуста и не добавляется никакой дополнительной работы, будет beforeExit
событие beforeExit
1process.on('beforeExit', exitCode => {});
Обычно, если в очередь задач не добавляется никакой дополнительной работы, процесс fibjs завершается. Но если новая задача запускается в функции обратного вызова слушателя, привязанного к событию beforeExit
, например, запуск волокна, то процесс fibjs продолжит работу.
process.exitCode передается как единственное значение параметра функции обратного вызова beforeExit
событий beforeExit
. Если процесс вот-вот завершится по явным причинам, таким как прямой вызов process.exit или beforeExit
исключения, событие beforeExit
не сработает.
событие выхода
Когда fibjs завершает работу, запускается событие exit
. Как только все слушатели, привязанные к событию exit
будут выполнены, процесс завершится
1process.on('exit', exitCode => {});
Функция обратного вызова прослушивателя событий exit
имеет только один входной параметр.Значение этого параметра может быть значением атрибута process.exitCode или значением exitCode
переданным при process.exit метода process.exit .
Сигнальное событие
Когда процесс fibjs получает сигнал, он запускает событие signal.Теперь поддерживаются сигналы 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();
});
Названия сигналов и их значения следующие:
- СИГНАЛ: когда терминал запущен, он может поддерживаться всеми платформами, и обычно его можно запускать с помощью 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
Выйти из текущего процесса и вернуть exitCode в качестве результата процесса.
1static process.exit();
Выйти из текущего процесса и вернуть результат
1static process.exit(Integer code);
Параметры звонка:
- code : целое число, вернуть результат процесса
cwd
Возвращает текущий рабочий путь операционной системы
1static String process.cwd();
Результат возврата:
- String , возвращает текущий системный путь
chdir
Изменить текущий рабочий путь операционной системы
1static process.chdir(String directory);
Параметры звонка:
- directory : String, укажите новый набор путей
uptime
Запросить время работы запущенной среды в секундах
1static Number process.uptime();
Результат возврата:
- Number , возвращает числовое значение, представляющее время
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 : Function, определяет функцию, выполняемую волокном
- args : ..., последовательность переменных параметров, эта последовательность будет передана функции в волокне
binding
Получить внутренний модуль с указанным именем
1static Value process.binding(String name);
Параметры звонка:
- name : String, укажите name запрашиваемого внутреннего модуля
Результат возврата:
- Value , возвращает указанный внутренний модуль
open
Запустите указанную командную строку, возьмите на себя потоки ввода и вывода процесса и верните объект процесса
1
2
3static 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
2static 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
3static 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
2static 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
3static 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
2static Integer process.run(String command,
Object opts = {}) async;
Параметры звонка:
- command : String, укажите командную строку для запуска
- opts : Object, укажите параметры для запуска
Результат возврата:
- Integer , возвращает результат команды
Опции, поддерживаемые opts, следующие:
1
2
3
4{
"timeout": 100, // 单位为 ms
"env": {} // 进程环境变量
}
Статические свойства
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
String, запросить полный путь к текущему исполняемому файлу
1static readonly String process.execPath;
env
Object, запросить переменные среды текущего процесса
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
File , запросить стандартный объект ввода текущего процесса
1static readonly File process.stdin;
stdout
File , запросить стандартный объект вывода текущего процесса
1static readonly File process.stdout;
stderr
File , запросить стандартный объект вывода ошибок текущего процесса
1static readonly File process.stderr;
exitCode
Целое число, запрос и установка кода выхода текущего процесса
1static Integer process.exitCode;