proceso do módulo
Módulo de procesamento de procesos, utilizado para xestionar os recursos do proceso actual
Método de referencia:
1var process = require('process');
procesos de eventos
O obxecto do módulo de proceso éEventEmitterAs instancias poden responder a eventos de nivel de proceso rexistrando oíntes de eventos.
evento beforeExit
Cando a tarefa fibjs estea baleira e non se engada ningún traballo adicional, beforeExit
desencadearase o evento
1process.on('beforeExit', exitCode => {});
Normalmente, se non se engade ningún traballo adicional á cola de tarefas, o proceso fibjs finalizará. Pero se beforeExit
se inicia unha tarefa nova na función de devolución de chamada do oínte ligado ao evento, como iniciar unha fibra, entón o proceso fibjs seguirá executándose.
process.exitCodePasou como único valor de parámetro á beforeExit
función de devolución de chamada do oínte de eventos. Se o proceso está a piques de finalizar por motivos explícitos, como chamar directamenteprocess.exitOu lanza unha excepción non detectada e beforeExit
o evento non se activará.
evento de saída
Cando fibjs sae, exit
activarase o evento. Unha vez que todos exit
os oíntes vinculados ao evento completasen a execución, o proceso finalizará.
1process.on('exit', exitCode => {});
exit
A función de devolución de chamada do detector de eventos só ten un parámetro de entrada. O valor deste parámetro pode serprocess.exitCodevalor de atributo ou chamadaprocess.exitO valor pasado ao método exitCode
.
Sinal de evento
Cando o proceso fibjs recibe un sinal, desencadearase un evento de sinal. Os sinais compatibles actualmente son SIGINT e SIGTERM. Cada nome de evento exprésase en maiúsculas do nome do sinal (por exemplo, o evento 'SIGINT' corresponde ao sinal SIGINT).
Os eventos de sinal son diferentes dos outros eventos de proceso. Os eventos de sinal preséntanse. Cando se produce un sinal, non importa cal sexa oioAs operacións, xa sexan de JavaScript, activarán o evento correspondente o antes posible. Por exemplo, pode usar o seguinte código para interromper a aplicación actual e mostrar o estado en execució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();
});
Os nomes dos sinais e os seus significados son os seguintes:
- SIGINT: cando se executa no terminal, pode ser compatible con todas as plataformas e normalmente pódese activar mediante CTRL+C.
- SIGTERM: Este sinal desenvólvese cando o proceso é morto. Non é compatible con Windows.
función estática
umask
Cambia o umask actual, Windows non admite este método
1static Integer process.umask(Integer mask);
Parámetros de chamada:
- mask: Número enteiro, especifique unha nova máscara
Resultados de devolución:
- Integer, volve á máscara anterior
Cambia o umask actual, Windows non admite este método
1static Integer process.umask(String mask);
Parámetros de chamada:
- mask: Cadea, especifica a nova máscara, o tipo de cadea octal (por exemplo: "0664")
Resultados de devolución:
- Integer, volve á máscara anterior
Devolve a umask actual. Windows non admite este método.
1static Integer process.umask();
Resultados de devolución:
- Integer, devolve o valor da máscara actual
hrtime
Devolve o tempo de alta precisión do sistema. Este tempo non ten nada que ver co tempo actual e só se usa para cronometrar de alta precisión.
1static Array process.hrtime(Array diff = []);
Parámetros de chamada:
- diff: Matriz, hora inicial utilizada para a comparación
Resultados de devolución:
- Array, devolve o tempo de tempo no formato [segundos, nanosegundos]
exit
Saia do proceso actual e devolve exitCode como resultado do proceso
1static process.exit();
Sae do proceso actual e devolve o resultado
1static process.exit(Integer code);
Parámetros de chamada:
- code: Enteiro, devolve o resultado do proceso
cwd
Devolve a ruta de traballo actual do sistema operativo
1static String process.cwd();
Resultados de devolución:
- String, devolve a ruta actual do sistema
dlopen
Cargando dinámicamente complementos C++
1
2
3static process.dlopen(Object module,
String filename,
Integer flags = 1);
Parámetros de chamada:
- module: Obxecto, especifica o módulo que se vai cargar
- filename: Cadea, especifica o nome do ficheiro do módulo que se vai cargar
- flags: Número enteiro, especifica a forma de cargar o módulo, o valor predeterminado é 1
chdir
Modificar a ruta de traballo actual do sistema operativo
1static process.chdir(String directory);
Parámetros de chamada:
- directory: Cadea, especifique a nova ruta da configuración
uptime
Consulta o tempo de execución do ambiente en execución, en segundos
1static Number process.uptime();
Resultados de devolución:
- Number, devolve un valor numérico que representa o tempo
cpuUsage
Consulta o tempo empregado polo proceso actual no código do usuario e do sistema, o valor é un valor de microsegundos (millonésimas de segundo)
1static Object process.cpuUsage(Object previousValue = {});
Parámetros de chamada:
- previousValue: Obxecto, especifica a hora da última consulta
Resultados de devolución:
- Object, devolve un informe que contén a hora
O informe de memoria produce resultados similares aos seguintes:
1
2
3
4{
"user": 132379,
"system": 50507
}
en:
- usuario devolve o tempo que pasou o proceso no código de usuario
- sistema devolve o tempo que pasou o proceso no código do sistema
memoryUsage
Consulta o informe de uso da memoria do proceso actual
1static Object process.memoryUsage();
Resultados de devolución:
- Object, devolve un informe que contén memoria
O informe de memoria produce resultados similares aos seguintes:
1
2
3
4
5{
"rss": 8622080,
"heapTotal": 4083456,
"heapUsed": 1621800
}
en:
- rss devolve o tamaño de memoria física actual ocupado polo proceso
- heapTotal devolve o tamaño da memoria do montón do motor v8
- heapUsed devolve o tamaño da memoria heap que está a utilizar o motor v8
nextTick
iniciar unha fibra
1
2static process.nextTick(Function func,
...args);
Parámetros de chamada:
- func: Función, especifique a función executada pola fibra
- args: ..., unha secuencia variádica de argumentos que se pasarán á función dentro da fibra
binding
Obter o módulo interno co nome especificado
1static Value process.binding(String name);
Parámetros de chamada:
- name: Cadea, especifica o nome do módulo interno que se vai consultar
Resultados de devolución:
- Value, devolve o módulo interno especificado
getgid
Consulta o ID de grupo do proceso actual
1static Integer process.getgid();
Resultados de devolución:
- Integer, devolve o ID de grupo do proceso actual
getuid
Consulta o ID de usuario do proceso actual
1static Integer process.getuid();
Resultados de devolución:
- Integer, devolve o ID de usuario do proceso actual
setgid
Establece o ID de grupo do proceso actual
1static process.setgid(Integer id);
Parámetros de chamada:
- id: Número enteiro, especifique o ID do grupo que se quere establecer
setuid
Establece o ID de usuario do proceso actual
1static process.setuid(Integer id);
Parámetros de chamada:
- id: Número enteiro, especifique o ID de usuario a definir
emitWarning
Emite avisos de proceso personalizados ou específicos da aplicación. Estes eventos pódense escoitar engadindo un controlador ao evento "aviso".
1
2static process.emitWarning(Value warning,
Object options);
Parámetros de chamada:
- warning: Valor, especifica o aviso que se vai emitir
opcións: Obxecto, opcións para especificar avisos
As opcións inclúen as seguintes:
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
}
Como usalo:
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'
});
Emite avisos de proceso personalizados ou específicos da aplicación. Estes eventos pódense escoitar engadindo un controlador ao evento "aviso".
1
2
3static process.emitWarning(Value warning,
String type = "Warning",
String code = "");
Parámetros de chamada:
- warning: Valor, especifica o aviso que se vai emitir
- type: Cadea, especifica o nome do tipo de aviso que se vai emitir. Predeterminado: "Aviso"
- code: Cadea, especifica o identificador único da instancia de aviso emitida
disconnect
Pecha a tubería ipc ao proceso pai
1static process.disconnect();
send
Envía unha mensaxe ao proceso dos pais
1static process.send(Value msg);
Parámetros de chamada:
- msg: Valor, especifica a mensaxe a enviar
propiedades estáticas
argv
Matriz, devolve os parámetros da liña de comandos do proceso actual
1static readonly Array process.argv;
execArgv
Array, devolve os parámetros especiais da liña de comandos do proceso actual. Estes parámetros son usados por fibjs para definir o ambiente en execución.
1static readonly Array process.execArgv;
version
String, devolve a cadea de versión fibjs
1static readonly String process.version;
versions
Obxecto, devolve a información da versión de fibjs e compoñentes
1static readonly Object process.versions;
execPath
String, consulta a ruta completa do ficheiro de execución en execución
1static readonly String process.execPath;
env
Obxecto, consulta as variables de ambiente do proceso actual
1static readonly Object process.env;
arch
Cadea, consulta o entorno da CPU actual, os resultados posibles son 'amd64', 'arm', 'arm64', 'ia32'
1static readonly String process.arch;
platform
Cadea, consulta o nome da plataforma actual, os resultados posibles son 'darwin', 'freebsd', 'linux' ou 'win32'
1static readonly String process.platform;
pid
Enteiro, le o id do proceso ao que apunta o obxecto actual
1static readonly Integer process.pid;
ppid
Enteiro, le o ID do proceso pai ao que apunta o obxecto actual
1static readonly Integer process.ppid;
stdin
Stream, consulta o obxecto de entrada estándar do proceso actual, enttyZhongweiTTYInputStream, en caso contrarioStream
1static readonly Stream process.stdin;
stdout
Stream, consulta o obxecto de saída estándar do proceso actual, enttyZhongweiTTYOutputStream, en caso contrarioStream
1static readonly Stream process.stdout;
stderr
Stream, consulte o obxecto de saída do erro estándar do proceso actual, enttyZhongweiTTYOutputStream, en caso contrarioStream
1static readonly Stream process.stderr;
exitCode
Enteiro, consulta e establece o código de saída do proceso actual
1static Integer process.exitCode;
connected
Booleano, consulta se a canalización co proceso pai está conectada normalmente
1static readonly Boolean process.connected;