processo del modulo
Modulo di elaborazione del processo, utilizzato per gestire le risorse del processo corrente
Metodo di riferimento:
1var 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 beforeExit
verrà attivato
1process.on('beforeExit', exitCode => {});
Normalmente, se non viene aggiunto ulteriore lavoro alla coda delle attività, il processo fibjs terminerà. Ma se beforeExit
viene 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 beforeExit
funzione 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 beforeExit
l'evento non verrà attivato.
evento di uscita
Quando fibjs esce, l'evento exit
verrà attivato. Una volta che tutti exit
gli ascoltatori legati all'evento avranno completato l'esecuzione, il processo terminerà.
1process.on('exit', exitCode => {});
exit
La 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
6var 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
1static 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
1static 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.
1static 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.
1static 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
1static process.exit();
Esci dal processo corrente e restituisce il risultato
1static process.exit(Integer code);
Parametri di chiamata:
- code: Intero, restituisce il risultato del processo
cwd
Restituisce il percorso di lavoro corrente del sistema operativo
1static String process.cwd();
Risultati restituiti:
- String, restituisce il percorso di sistema corrente
dlopen
Caricamento dinamico dei componenti aggiuntivi C++
1
2
3static 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
1static 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
1static 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)
1static 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
1static 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
2static 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
1static 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
1static Integer process.getgid();
Risultati restituiti:
- Integer, restituisce l'ID del gruppo del processo corrente
getuid
Interroga l'ID utente del processo corrente
1static Integer process.getuid();
Risultati restituiti:
- Integer, restituisce l'ID utente del processo corrente
setgid
Imposta l'ID del gruppo del processo corrente
1static 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
1static 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
2static 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
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'
});
Emettere avvisi di processo personalizzati o specifici dell'applicazione. Questi eventi possono essere ascoltati aggiungendo un gestore all'evento 'warning'
1
2
3static 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
1static process.disconnect();
send
Invia un messaggio al processo principale
1static 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
1static 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.
1static readonly Array process.execArgv;
version
String, restituisce la stringa della versione di fibjs
1static readonly String process.version;
versions
Oggetto, restituisce le informazioni sulla versione di fibjs e dei componenti
1static readonly Object process.versions;
execPath
String, interroga il percorso completo del file di esecuzione attualmente in esecuzione
1static readonly String process.execPath;
env
Oggetto, interroga le variabili di ambiente del processo corrente
1static readonly Object process.env;
arch
Stringa, interroga l'ambiente corrente della CPU, i possibili risultati sono 'amd64', 'arm', 'arm64', 'ia32'
1static readonly String process.arch;
platform
Stringa, interroga il nome della piattaforma corrente, i risultati possibili sono "darwin", "freebsd", "linux" o "win32"
1static readonly String process.platform;
pid
Intero, legge l'id del processo a cui punta l'oggetto corrente
1static readonly Integer process.pid;
ppid
Intero, legge l'id del processo genitore a cui punta l'oggetto corrente
1static readonly Integer process.ppid;
stdin
Stream, interroga l'oggetto di input standard del processo corrente, inttyZhongweiTTYInputStream, AltrimentiStream
1static readonly Stream process.stdin;
stdout
Stream, interroga l'oggetto di output standard del processo corrente, inttyZhongweiTTYOutputStream, AltrimentiStream
1static readonly Stream process.stdout;
stderr
Stream, interroga l'oggetto di output dell'errore standard del processo corrente, inttyZhongweiTTYOutputStream, AltrimentiStream
1static readonly Stream process.stderr;
exitCode
Intero, interroga e imposta il codice di uscita del processo corrente
1static Integer process.exitCode;
connected
Booleano, interroga se la pipe con il processo genitore è connessa normalmente
1static readonly Boolean process.connected;