Modulo modulo base

processo del modulo

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

Metodo di riferimento:

1
var process = require('process');

elaborare gli eventi

L'oggetto del modulo di processo èEventEmitterLe istanze possono rispondere a eventi a livello di processo registrando i listener di eventi.

evento prima dell'uscita

Quando l'attività fibjs è vuota e non viene aggiunto alcun lavoro aggiuntivo, l'evento beforeExitverrà attivato

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

Normalmente, se non viene aggiunto ulteriore lavoro alla coda delle attività, il processo fibjs terminerà. Ma se beforeExitviene avviata una nuova attività nella funzione di callback del listener associato a eventi, come l'avvio di una fibra, il processo fibjs continuerà a essere eseguito.

process.exitCodePassato come unico valore di parametro alla beforeExitfunzione di callback del listener di eventi. Se il processo sta per terminare per ragioni esplicite, come la chiamata direttaprocess.exitOppure genera un'eccezione non rilevata e beforeExitl'evento non verrà attivato.

evento di uscita

Quando fibjs esce, l'evento exitverrà attivato. Una volta che tutti exitgli ascoltatori legati all'evento avranno completato l'esecuzione, il processo terminerà.

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

exitLa funzione di callback del listener di eventi ha un solo parametro di input. Il valore di questo parametro può essereprocess.exitCodevalore dell'attributo o chiamataprocess.exitIl valore passato al metodo exitCode.

Evento di segnalazione

Quando il processo fibjs riceve un segnale, verrà attivato un evento di segnale. I segnali attualmente supportati sono SIGINT e SIGTERM. Ogni nome di evento è espresso in lettere maiuscole 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 vengono anticipati. Quando si verifica un segnale, indipendentemente dalla correnteioLe operazioni, siano esse operazioni JavaScript, attiveranno l'evento corrispondente il prima possibile. Ad esempio, è possibile utilizzare il codice seguente per interrompere l'applicazione corrente e visualizzare 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 il loro significato sono i seguenti:

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

funzione statica

umask

Cambia l'umask corrente, Windows non supporta questo metodo

1
static Integer process.umask(Integer mask);

Parametri di chiamata:

  • mask: Numero intero, specificare la nuova maschera

Risultati restituiti:

  • Integer, ritorna alla maschera precedente

Cambia l'umask corrente, Windows non supporta questo metodo

1
static Integer process.umask(String mask);

Parametri di chiamata:

  • mask: String, specifica la nuova maschera, stringa di tipo ottale (es: "0664")

Risultati restituiti:

  • Integer, ritorna alla maschera precedente

Restituisce l'umask corrente. Windows non supporta questo metodo.

1
static Integer process.umask();

Risultati restituiti:

  • Integer, restituisce il valore della maschera corrente

hrtime

Restituisce l'ora ad alta precisione del sistema. Questa ora non ha nulla a che fare con l'ora corrente e viene utilizzata solo per la temporizzazione ad alta precisione.

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

Parametri di chiamata:

  • diff: Array, ora iniziale utilizzata per il confronto

Risultati restituiti:

  • Array, restituisce il tempo di cronometraggio nel 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, restituisce il risultato del processo

cwd

Restituisce il percorso di lavoro corrente del sistema operativo

1
static String process.cwd();

Risultati restituiti:

  • String, restituisce il percorso di sistema corrente

dlopen

Caricamento dinamico dei componenti aggiuntivi C++

1 2 3
static process.dlopen(Object module, String filename, Integer flags = 1);

Parametri di chiamata:

  • module: Oggetto, specifica il modulo da caricare
  • filename: String, specifica il nome del file del modulo da caricare
  • flags: Intero, specifica il modo di caricare il modulo, il valore predefinito è 1

chdir

Modificare il percorso di lavoro corrente del sistema operativo

1
static process.chdir(String directory);

Parametri di chiamata:

  • directory: String, specifica il nuovo percorso dell'impostazione

uptime

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

1
static Number process.uptime();

Risultati restituiti:

  • Number, restituisce un valore numerico che rappresenta il tempo

cpuUsage

Interroga il tempo impiegato dal processo corrente nel codice utente e di sistema, il valore è un valore di microsecondi (milionesimi di secondo)

1
static Object process.cpuUsage(Object previousValue = {});

Parametri di chiamata:

  • previousValue: Oggetto, specifica l'ora dell'ultima query

Risultati restituiti:

  • Object, restituisce un report contenente l'ora

Il report sulla memoria produce risultati simili ai seguenti:

1 2 3 4
{ "user": 132379, "system": 50507 }

In:

  • user restituisce il tempo trascorso dal processo nel codice utente
  • Il sistema restituisce il tempo trascorso dal processo nel codice di sistema

memoryUsage

Interroga il report sull'utilizzo della memoria del processo corrente

1
static Object process.memoryUsage();

Risultati restituiti:

  • Object, restituisce un report contenente memoria

Il report sulla memoria produce risultati simili ai seguenti:

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

In:

  • rss restituisce la dimensione della memoria fisica corrente occupata dal processo
  • heapTotal restituisce la dimensione della memoria heap del motore v8
  • heapUsed restituisce la dimensione della memoria heap utilizzata dal motore v8

nextTick

iniziare una fibra

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

Parametri di chiamata:

  • func: Funzione, specifica la funzione eseguita dalla fibra
  • args: ..., una sequenza variadica di argomenti che verrà passata alla funzione all'interno della fibra

binding

Ottieni il modulo interno con il nome specificato

1
static Value process.binding(String name);

Parametri di chiamata:

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

Risultati restituiti:

  • Value, restituisce il modulo interno specificato

getgid

Interroga l'ID del gruppo del processo corrente

1
static Integer process.getgid();

Risultati restituiti:

  • Integer, restituisce l'ID del gruppo del processo corrente

getuid

Interroga l'ID utente del processo corrente

1
static Integer process.getuid();

Risultati restituiti:

  • Integer, restituisce l'ID utente del processo corrente

setgid

Imposta l'ID del gruppo del processo corrente

1
static process.setgid(Integer id);

Parametri di chiamata:

  • id: numero intero, specificare l'ID del gruppo da impostare

setuid

Imposta l'ID utente del processo corrente

1
static process.setuid(Integer id);

Parametri di chiamata:

  • id: Numero intero, specificare l'ID utente da impostare

emitWarning

Emettere avvisi di processo personalizzati o specifici dell'applicazione. Questi eventi possono essere ascoltati aggiungendo un gestore all'evento 'warning'

1 2
static process.emitWarning(Value warning, Object options);

Parametri di chiamata:

  • warning: Valore, specifica l'avviso da emettere
  • opzioni: Oggetto, opzioni per specificare gli avvisi

    Le opzioni includono quanto segue:

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 }

Come usarlo:

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

Emettere avvisi di processo personalizzati o specifici dell'applicazione. Questi eventi possono essere ascoltati aggiungendo un gestore all'evento 'warning'

1 2 3
static process.emitWarning(Value warning, String type = "Warning", String code = "");

Parametri di chiamata:

  • warning: Valore, specifica l'avviso da emettere
  • type: String, specifica il nome del tipo di avviso da emettere. Impostazione predefinita: 'Avviso'
  • code: String, specifica l'identificatore univoco dell'istanza di avviso emessa

disconnect

Chiudi la pipe ipc al processo genitore

1
static process.disconnect();

send

Invia un messaggio al processo principale

1
static process.send(Value msg);

Parametri di chiamata:

  • msg: Valore, specifica il messaggio da inviare

proprietà statiche

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 della versione di fibjs

1
static readonly String process.version;

versions

Oggetto, restituisce le informazioni sulla versione di fibjs e dei 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 di ambiente del processo corrente

1
static readonly Object process.env;

arch

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

1
static readonly String process.arch;

platform

Stringa, interroga il nome della piattaforma corrente, i risultati possibili sono "darwin", "freebsd", "linux" o "win32"

1
static readonly String process.platform;

pid

Intero, legge l'id del processo a cui punta l'oggetto corrente

1
static readonly Integer process.pid;

ppid

Intero, legge l'id del processo genitore a cui punta l'oggetto corrente

1
static readonly Integer process.ppid;

stdin

Stream, interroga l'oggetto di input standard del processo corrente, inttyZhongweiTTYInputStream, AltrimentiStream

1
static readonly Stream process.stdin;

stdout

Stream, interroga l'oggetto di output standard del processo corrente, inttyZhongweiTTYOutputStream, AltrimentiStream

1
static readonly Stream process.stdout;

stderr

Stream, interroga l'oggetto di output dell'errore standard del processo corrente, inttyZhongweiTTYOutputStream, AltrimentiStream

1
static readonly Stream process.stderr;

exitCode

Intero, interroga e imposta il codice di uscita del processo corrente

1
static Integer process.exitCode;

connected

Booleano, interroga se la pipe con il processo genitore è connessa normalmente

1
static readonly Boolean process.connected;