Modulo Modulo base

Processo del modulo

Modulo di elaborazione del processo per gestire le risorse del processo corrente

Metodo di riferimento:

1
var process = require('process');

Evento di processo

L'oggetto modulo di processo è un'istanza di EventEmitter , che può rispondere agli eventi a livello di processo registrando un listener di eventi.

evento beforeExit

Quando l'attività di fibjs è vuota e non viene aggiunto alcun lavoro aggiuntivo, verrà attivato l'evento prima di beforeExit

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

In circostanze normali, se nessun lavoro aggiuntivo viene aggiunto alla coda delle attività, il processo fibjs terminerà. Ma se la funzione di callback dell'ascoltatore associata all'evento beforeExit avvia una nuova attività, come l'avvio di una fibra, il processo fibjs continuerà a essere eseguito.

process.exitCode viene passato come unico valore di parametro alla funzione di callback del beforeExit eventi beforeExit . Se il processo sta per terminare per motivi espliciti, come la chiamata diretta a process.exit o il lancio di un'eccezione non beforeExit , l'evento beforeExit non verrà attivato.

evento di uscita

Quando fibjs uscite, l'evento exit verrà attivato. Una volta che tutti gli ascoltatori legati alla exit evento vengono eseguite, il processo termina

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

La funzione di callback del listener di eventi di exit ha un solo parametro di input Il valore di questo parametro può essere il valore dell'attributo di process.exitCode o il valore di exitCode passato quando viene chiamato il metodo process.exit .

Evento del segnale

Quando il processo fibjs riceve un segnale, attiverà un evento di segnale, i segnali attualmente supportati sono SIGINT e SIGTERM. Il nome di ciascun evento è indicato dalla maiuscola del nome del segnale (ad esempio, l'evento'SIGINT 'corrisponde al segnale SIGINT).

Gli eventi di segnale sono diversi dagli altri eventi di processo Gli eventi di segnale sono anticipati Quando si verifica un segnale, indipendentemente dall'operazione io corrente o dall'operazione JavaScript, l'evento corrispondente verrà attivato il prima possibile. Ad esempio, è possibile utilizzare il seguente codice per interrompere l'applicazione corrente e generare lo stato di esecuzione:

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(); });

I nomi dei segnali e i loro significati sono i seguenti:

  • SIGINT: quando il terminale è in esecuzione, può essere supportato da tutte le piattaforme e in genere può essere attivato da CTRL + C.
  • SIGTERM: questo segnale viene attivato quando il processo viene interrotto. Non supportato in Windows.

Funzione statica

umask

Cambia la umask corrente, Windows non supporta questo metodo

1
static Integer process.umask(Integer mask);

Parametri di chiamata:

  • mask : numero intero, specificare una nuova maschera

Risultato di ritorno:

  • Integer , restituisce la maschera precedente

Cambia la umask corrente, Windows non supporta questo metodo

1
static Integer process.umask(String mask);

Parametri di chiamata:

  • mask : stringa, specifica una nuova maschera, tipo di stringa ottale (ad es. "0664")

Risultato di ritorno:

  • Integer , restituisce la maschera precedente

Restituisce la umask corrente, Windows non supporta questo metodo

1
static Integer process.umask();

Risultato di ritorno:

  • Integer , restituisce il valore corrente della maschera

hrtime

Restituisce il tempo di alta precisione del sistema, questa volta non ha nulla a che fare con l'ora corrente, solo per i tempi di alta precisione

1
static Array process.hrtime(Array diff = []);

Parametri di chiamata:

  • diff : Array, tempo iniziale per il confronto

Risultato di ritorno:

  • Array , restituisce il tempo di temporizzazione, il formato è [secondi, nanosecondi]

exit

Esci dal processo corrente e restituisce exitCode come risultato del processo

1
static process.exit();

Esci dal processo corrente e restituisce il risultato

1
static process.exit(Integer code);

Parametri di chiamata:

  • code : intero, risultato del processo di ritorno

cwd

Restituisce il percorso di lavoro corrente del sistema operativo

1
static String process.cwd();

Risultato di ritorno:

  • String , restituisce il percorso di sistema corrente

chdir

Modifica il percorso di lavoro corrente del sistema operativo

1
static process.chdir(String directory);

Parametri di chiamata:

  • directory : String, specifica un nuovo percorso

uptime

Interroga il tempo di esecuzione dell'ambiente operativo, in secondi

1
static Number process.uptime();

Risultato di ritorno:

  • Number , restituisce un valore numerico che rappresenta il tempo

memoryUsage

Interroga il rapporto sull'utilizzo corrente della memoria di processo

1
static Object process.memoryUsage();

Risultato di ritorno:

  • Object , restituisce il rapporto contenente memoria

Il rapporto di memoria produce risultati simili ai seguenti:

1 2 3 4 5
{ "rss": 8622080, "heapTotal": 4083456, "heapUsed": 1621800 }

tra loro:

  • rss restituisce l'attuale dimensione della memoria fisica del processo
  • heapTotal restituisce la dimensione della memoria heap del motore v8
  • heapUsed restituisce la dimensione della memoria heap utilizzata dal motore v8

nextTick

Inizia una fibra

1 2
static process.nextTick(Function func, ...args);

Parametri di chiamata:

  • func : Function, formula la funzione dell'esecuzione della fibra
  • args : ..., sequenza di parametri variabili, questa sequenza verrà passata alla funzione nella fibra

binding

Ottieni il modulo interno con il nome specificato

1
static Value process.binding(String name);

Parametri di chiamata:

  • name : String, specifica il name del modulo interno da interrogare

Risultato di ritorno:

  • Value , restituisce il modulo interno specificato

open

Eseguire la riga di comando specificata, rilevare i flussi di input e output del processo e restituire l'oggetto del processo

1 2 3
static SubProcess process.open(String command, Array args, Object opts = {});

Parametri di chiamata:

  • command : String, specifica la riga di comando da eseguire
  • args : array, specifica l'elenco dei parametri da eseguire
  • opts : Object, specifica le opzioni per l'esecuzione

Risultato di ritorno:

  • SubProcess , restituisce l'oggetto processo contenente il risultato dell'operazione

Le opzioni supportate da opts sono le seguenti:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Eseguire la riga di comando specificata, rilevare i flussi di input e output del processo e restituire l'oggetto del processo

1 2
static SubProcess process.open(String command, Object opts = {});

Parametri di chiamata:

  • command : String, specifica la riga di comando da eseguire
  • opts : Object, specifica le opzioni per l'esecuzione

Risultato di ritorno:

  • SubProcess , restituisce l'oggetto processo contenente il risultato dell'operazione

Le opzioni supportate da opts sono le seguenti:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

start

Eseguire la riga di comando specificata e restituire l'oggetto processo

1 2 3
static SubProcess process.start(String command, Array args, Object opts = {});

Parametri di chiamata:

  • command : String, specifica la riga di comando da eseguire
  • args : array, specifica l'elenco dei parametri da eseguire
  • opts : Object, specifica le opzioni per l'esecuzione

Risultato di ritorno:

  • SubProcess , restituisce l'oggetto processo contenente il risultato dell'operazione

Le opzioni supportate da opts sono le seguenti:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Eseguire la riga di comando specificata e restituire l'oggetto processo

1 2
static SubProcess process.start(String command, Object opts = {});

Parametri di chiamata:

  • command : String, specifica la riga di comando da eseguire
  • opts : Object, specifica le opzioni per l'esecuzione

Risultato di ritorno:

  • SubProcess , restituisce l'oggetto processo contenente il risultato dell'operazione

Le opzioni supportate da opts sono le seguenti:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

run

Eseguire la riga di comando specificata e restituire il codice finale del processo

1 2 3
static Integer process.run(String command, Array args, Object opts = {}) async;

Parametri di chiamata:

  • command : String, specifica la riga di comando da eseguire
  • args : array, specifica l'elenco dei parametri da eseguire
  • opts : Object, specifica le opzioni per l'esecuzione

Risultato di ritorno:

  • Integer , restituisce il risultato corrente del comando

Le opzioni supportate da opts sono le seguenti:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Eseguire la riga di comando specificata e restituire il codice finale del processo

1 2
static Integer process.run(String command, Object opts = {}) async;

Parametri di chiamata:

  • command : String, specifica la riga di comando da eseguire
  • opts : Object, specifica le opzioni per l'esecuzione

Risultato di ritorno:

  • Integer , restituisce il risultato corrente del comando

Le opzioni supportate da opts sono le seguenti:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Proprietà statica

argv

Array, restituisce i parametri della riga di comando del processo corrente

1
static readonly Array process.argv;

execArgv

Array, restituisce i parametri speciali della riga di comando del processo corrente, questi parametri vengono utilizzati da fibjs per impostare l'ambiente in esecuzione

1
static readonly Array process.execArgv;

version

String, restituisce la stringa di versione fibjs

1
static readonly String process.version;

versions

Oggetto, restituisce le informazioni sulla versione di fibjs e componenti

1
static readonly Object process.versions;

execPath

String, interroga il percorso completo del file di esecuzione attualmente in esecuzione

1
static readonly String process.execPath;

env

Oggetto, interroga le variabili d'ambiente del processo corrente

1
static readonly Object process.env;

arch

String, interroga l'ambiente CPU corrente, i possibili risultati sono 'amd64', 'arm', 'arm64', 'ia32'

1
static readonly String process.arch;

platform

String, interroga il nome della piattaforma corrente, il possibile risultato è'darwin ',' freebsd ',' linux 'o'win32'

1
static readonly String process.platform;

pid

Numero intero, leggi l'id del processo a cui punta l'oggetto corrente

1
static readonly Integer process.pid;

ppid

Numero intero, leggi l'id del processo principale a cui punta l'oggetto corrente

1
static readonly Integer process.ppid;

stdin

File , interroga l'oggetto di input standard del processo corrente

1
static readonly File process.stdin;

stdout

File , interroga l'oggetto di output standard del processo corrente

1
static readonly File process.stdout;

stderr

File , interroga l'oggetto di output dell'errore standard del processo corrente

1
static readonly File process.stderr;

exitCode

Numero intero, interroga e imposta il codice di uscita del processo corrente

1
static Integer process.exitCode;