Módulo módulo básico

proceso do módulo

Módulo de procesamento de procesos, utilizado para xestionar os recursos do proceso actual

Método de referencia:

1
var 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, beforeExitdesencadearase o evento

1
process.on('beforeExit', exitCode => {});

Normalmente, se non se engade ningún traballo adicional á cola de tarefas, o proceso fibjs finalizará. Pero se beforeExitse 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 á beforeExitfunció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 beforeExito evento non se activará.

evento de saída

Cando fibjs sae, exitactivarase o evento. Unha vez que todos exitos oíntes vinculados ao evento completasen a execución, o proceso finalizará.

1
process.on('exit', exitCode => {});

exitA 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 6
var 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

1
static 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

1
static 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.

1
static 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.

1
static 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

1
static process.exit();

Sae do proceso actual e devolve o resultado

1
static 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

1
static String process.cwd();

Resultados de devolución:

  • String, devolve a ruta actual do sistema

dlopen

Cargando dinámicamente complementos C++

1 2 3
static 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

1
static 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

1
static 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)

1
static 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

1
static 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 2
static 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

1
static 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

1
static 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

1
static 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

1
static 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

1
static 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 2
static 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 17
const { 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 3
static 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

1
static process.disconnect();

send

Envía unha mensaxe ao proceso dos pais

1
static 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

1
static 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.

1
static readonly Array process.execArgv;

version

String, devolve a cadea de versión fibjs

1
static readonly String process.version;

versions

Obxecto, devolve a información da versión de fibjs e compoñentes

1
static readonly Object process.versions;

execPath

String, consulta a ruta completa do ficheiro de execución en execución

1
static readonly String process.execPath;

env

Obxecto, consulta as variables de ambiente do proceso actual

1
static readonly Object process.env;

arch

Cadea, consulta o entorno da CPU actual, os resultados posibles son 'amd64', 'arm', 'arm64', 'ia32'

1
static readonly String process.arch;

platform

Cadea, consulta o nome da plataforma actual, os resultados posibles son 'darwin', 'freebsd', 'linux' ou 'win32'

1
static readonly String process.platform;

pid

Enteiro, le o id do proceso ao que apunta o obxecto actual

1
static readonly Integer process.pid;

ppid

Enteiro, le o ID do proceso pai ao que apunta o obxecto actual

1
static readonly Integer process.ppid;

stdin

Stream, consulta o obxecto de entrada estándar do proceso actual, enttyZhongweiTTYInputStream, en caso contrarioStream

1
static readonly Stream process.stdin;

stdout

Stream, consulta o obxecto de saída estándar do proceso actual, enttyZhongweiTTYOutputStream, en caso contrarioStream

1
static readonly Stream process.stdout;

stderr

Stream, consulte o obxecto de saída do erro estándar do proceso actual, enttyZhongweiTTYOutputStream, en caso contrarioStream

1
static readonly Stream process.stderr;

exitCode

Enteiro, consulta e establece o código de saída do proceso actual

1
static Integer process.exitCode;

connected

Booleano, consulta se a canalización co proceso pai está conectada normalmente

1
static readonly Boolean process.connected;