proceso del módulo
Módulo de procesamiento de procesos, utilizado para gestionar los recursos del proceso actual.
Método de referencia:
1var process = require('process');
procesar eventos
El objeto del módulo de proceso esEventEmitterLas instancias pueden responder a eventos a nivel de proceso registrando detectores de eventos.
antes del evento de salida
Cuando la tarea fibjs esté vacía y no se agregue trabajo adicional, beforeExit
se activará el evento
1process.on('beforeExit', exitCode => {});
Normalmente, si no se agrega trabajo adicional a la cola de tareas, el proceso fibjs finalizará. Pero si beforeExit
se inicia una nueva tarea en la función de devolución de llamada del oyente vinculado a eventos, como iniciar una fibra, entonces el proceso fibjs continuará ejecutándose.
process.exitCodePasado como único valor de parámetro a beforeExit
la función de devolución de llamada del detector de eventos. Si el proceso está a punto de finalizar por razones explícitas, como llamar directamenteprocess.exitO lanza una excepción no detectada y beforeExit
el evento no se activará.
evento de salida
Cuando fibjs sale, el evento exit
se activará. Una vez que todos exit
los oyentes vinculados al evento hayan completado la ejecución, el proceso finalizará.
1process.on('exit', exitCode => {});
exit
La función de devolución de llamada del detector de eventos tiene solo un parámetro de entrada. El valor de este parámetro puede serprocess.exitCodevalor de atributo o llamadaprocess.exitEl valor pasado al método exitCode
.
evento de señal
Cuando el proceso fibjs recibe una señal, se activará un evento de señal. Las señales actualmente admitidas son SIGINT y SIGTERM. Cada nombre de evento se expresa en letras mayúsculas del nombre de la señal (por ejemplo, el evento 'SIGINT' corresponde a la señal SIGINT).
Los eventos de señal son diferentes de otros eventos de proceso. Los eventos de señal se adelantan. Cuando ocurre una señal, sin importar cuál sea la corriente.ioLas operaciones, ya sean operaciones de JavaScript, activarán el evento correspondiente lo antes posible. Por ejemplo, puede utilizar el siguiente código para interrumpir la aplicación actual y mostrar el estado de ejecución:
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();
});
Los nombres de las señales y sus significados son los siguientes:
- SIGINT: cuando se ejecuta en la terminal, puede ser compatible con todas las plataformas y, por lo general, se puede activar con CTRL+C.
- SIGTERM: Esta señal se activa cuando se finaliza el proceso. No es compatible con Windows.
función estática
umask
Cambie la máscara de usuario actual, Windows no admite este método
1static Integer process.umask(Integer mask);
Parámetros de llamada:
- mask: Entero, especifique una nueva máscara
Resultados de devolución:
- Integer, volver a la máscara anterior
Cambie la máscara de usuario actual, Windows no admite este método
1static Integer process.umask(String mask);
Parámetros de llamada:
- mask: Cadena, especifica la nueva máscara, tipo de cadena octal (por ejemplo: "0664")
Resultados de devolución:
- Integer, volver a la máscara anterior
Devuelve la máscara de usuario actual. Windows no admite este método.
1static Integer process.umask();
Resultados de devolución:
- Integer, devuelve el valor de máscara actual
hrtime
Devuelve la hora de alta precisión del sistema. Esta hora no tiene nada que ver con la hora actual y solo se utiliza para sincronización de alta precisión.
1static Array process.hrtime(Array diff = []);
Parámetros de llamada:
- diff: Matriz, tiempo inicial utilizado para la comparación
Resultados de devolución:
- Array, devuelve el tiempo en el formato [segundos, nanosegundos]
exit
Salga del proceso actual y devuelva exitCode como resultado del proceso.
1static process.exit();
Salir del proceso actual y devolver el resultado.
1static process.exit(Integer code);
Parámetros de llamada:
- code: Entero, devuelve el resultado del proceso.
cwd
Devuelve la ruta de trabajo actual del sistema operativo.
1static String process.cwd();
Resultados de devolución:
- String, devuelve la ruta actual del sistema
dlopen
Carga dinámica de complementos de C++
1
2
3static process.dlopen(Object module,
String filename,
Integer flags = 1);
Parámetros de llamada:
- module: Objeto, especifica el módulo a cargar
- filename: Cadena, especifica el nombre del archivo del módulo que se cargará
- flags: Entero, especifica la forma de cargar el módulo, el valor predeterminado es 1
chdir
Modificar la ruta de trabajo actual del sistema operativo.
1static process.chdir(String directory);
Parámetros de llamada:
- directory: Cadena, especifique la nueva ruta de la configuración
uptime
Consultar el tiempo de ejecución del entorno en ejecución, en segundos.
1static Number process.uptime();
Resultados de devolución:
- Number, devuelve un valor numérico que representa el tiempo
cpuUsage
Consulta el tiempo empleado por el proceso actual en el código de usuario y del sistema, el valor es un valor de microsegundo (millonésimas de segundo)
1static Object process.cpuUsage(Object previousValue = {});
Parámetros de llamada:
- previousValue: Objeto, especifica la hora de la última consulta.
Resultados de devolución:
- Object, devuelve un informe que contiene la hora
El informe de memoria produce resultados similares a los siguientes:
1
2
3
4{
"user": 132379,
"system": 50507
}
en:
- El usuario devuelve el tiempo que pasó el proceso en el código de usuario.
- El sistema devuelve el tiempo que pasó el proceso en el código del sistema.
memoryUsage
Consultar el informe de uso de memoria del proceso actual.
1static Object process.memoryUsage();
Resultados de devolución:
- Object, devuelve un informe que contiene memoria
El informe de memoria produce resultados similares a los siguientes:
1
2
3
4
5{
"rss": 8622080,
"heapTotal": 4083456,
"heapUsed": 1621800
}
en:
- rss devuelve el tamaño de memoria física actual ocupado por el proceso
- heapTotal devuelve el tamaño de la memoria del montón del motor v8
- heapUsed devuelve el tamaño de la memoria dinámica que utiliza el motor v8
nextTick
iniciar una fibra
1
2static process.nextTick(Function func,
...args);
Parámetros de llamada:
- func: Función, especifica la función ejecutada por la fibra.
- args: ..., una secuencia variada de argumentos que se pasarán a la función dentro de la fibra
binding
Obtenga el módulo interno con el nombre especificado
1static Value process.binding(String name);
Parámetros de llamada:
- name: Cadena, especifica el nombre del módulo interno que se consultará
Resultados de devolución:
- Value, devuelve el módulo interno especificado
getgid
Consultar la identificación del grupo del proceso actual.
1static Integer process.getgid();
Resultados de devolución:
- Integer, devuelve la identificación del grupo del proceso actual
getuid
Consultar el ID de usuario del proceso actual.
1static Integer process.getuid();
Resultados de devolución:
- Integer, devuelve la identificación de usuario del proceso actual
setgid
Establecer la identificación del grupo del proceso actual
1static process.setgid(Integer id);
Parámetros de llamada:
- id: Entero, especifique la identificación del grupo que se establecerá
setuid
Establecer la identificación de usuario del proceso actual
1static process.setuid(Integer id);
Parámetros de llamada:
- id: Entero, especifique el ID de usuario que se configurará
emitWarning
Emita advertencias de proceso personalizadas o específicas de la aplicación. Estos eventos se pueden escuchar agregando un controlador al evento de 'advertencia'
1
2static process.emitWarning(Value warning,
Object options);
Parámetros de llamada:
- warning: Valor, especifica la advertencia que se emitirá
opciones: Objeto, opciones para especificar advertencias
Las opciones incluyen lo siguiente:
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
}
Cómo usarlo:
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'
});
Emita advertencias de proceso personalizadas o específicas de la aplicación. Estos eventos se pueden escuchar agregando un controlador al evento de 'advertencia'
1
2
3static process.emitWarning(Value warning,
String type = "Warning",
String code = "");
Parámetros de llamada:
- warning: Valor, especifica la advertencia que se emitirá
- type: Cadena, especifica el nombre del tipo de advertencia que se emitirá. Valor predeterminado: 'Advertencia'
- code: Cadena, especifica el identificador único de la instancia de advertencia emitida
disconnect
Cierre la tubería ipc al proceso principal
1static process.disconnect();
send
Enviar un mensaje al proceso padre.
1static process.send(Value msg);
Parámetros de llamada:
- msg: Valor, especifica el mensaje a enviar
propiedades estáticas
argv
Matriz, devuelve los parámetros de la línea de comando del proceso actual
1static readonly Array process.argv;
execArgv
Matriz, devuelve los parámetros especiales de la línea de comando del proceso actual. Estos parámetros son utilizados por fibjs para configurar el entorno de ejecución.
1static readonly Array process.execArgv;
version
Cadena, devuelve la cadena de la versión fibjs
1static readonly String process.version;
versions
Objeto, devuelve la información de versión de fibjs y componentes.
1static readonly Object process.versions;
execPath
Cadena, consulta la ruta completa del archivo de ejecución actualmente en ejecución
1static readonly String process.execPath;
env
Objeto, consulta las variables de entorno del proceso actual.
1static readonly Object process.env;
arch
Cadena, consulta el entorno actual de la CPU, los resultados posibles son 'amd64', 'arm', 'arm64', 'ia32'
1static readonly String process.arch;
platform
Cadena, consulta el nombre de la plataforma actual, los resultados posibles son 'darwin', 'freebsd', 'linux' o 'win32'
1static readonly String process.platform;
pid
Entero, lee la identificación del proceso al que apunta el objeto actual
1static readonly Integer process.pid;
ppid
Entero, lee la identificación del proceso principal al que apunta el objeto actual
1static readonly Integer process.ppid;
stdin
Stream, consulta el objeto de entrada estándar del proceso actual, enttyzhongweiTTYInputStream, de lo contrarioStream
1static readonly Stream process.stdin;
stdout
Stream, consulta el objeto de salida estándar del proceso actual, enttyzhongweiTTYOutputStream, de lo contrarioStream
1static readonly Stream process.stdout;
stderr
Stream, consulta el objeto de salida de error estándar del proceso actual, enttyzhongweiTTYOutputStream, de lo contrarioStream
1static readonly Stream process.stderr;
exitCode
Entero, consulta y establece el código de salida del proceso actual
1static Integer process.exitCode;
connected
Booleano, consulta si la tubería con el proceso principal está conectada normalmente
1static readonly Boolean process.connected;