processus de module
Module de traitement des processus, utilisé pour gérer les ressources du processus en cours
Méthode de référence :
1var process = require('process');
événements de processus
L'objet module de processus estEventEmitterLes instances peuvent répondre aux événements au niveau du processus en enregistrant des écouteurs d'événements.
Événement avant la sortie
Lorsque la tâche fibjs est vide et qu'aucun travail supplémentaire n'est ajouté, l'événement beforeExit
sera déclenché
1process.on('beforeExit', exitCode => {});
Normalement, si aucun travail supplémentaire n'est ajouté à la file d'attente des tâches, le processus fibjs se terminera. Mais si beforeExit
une nouvelle tâche est démarrée dans la fonction de rappel de l'écouteur lié aux événements, comme le démarrage d'une fibre, alors le processus fibjs continuera à s'exécuter.
process.exitCodePassé comme seule valeur de paramètre à beforeExit
la fonction de rappel de l'écouteur d'événement. Si le processus est sur le point de se terminer pour des raisons explicites, comme l'appel directprocess.exitOu lancez une exception non interceptée et beforeExit
l'événement ne sera pas déclenché.
événement de sortie
Lorsque fibjs se termine, l'événement exit
sera déclenché. Une fois que tous exit
les écouteurs liés à l'événement auront terminé leur exécution, le processus se terminera.
1process.on('exit', exitCode => {});
exit
La fonction de rappel de l'écouteur d'événements n'a qu'un seul paramètre d'entrée. La valeur de ce paramètre peut êtreprocess.exitCodevaleur d'attribut, ou appelprocess.exitLa valeur transmise à la méthode exitCode
.
Événement signal
Lorsque le processus fibjs reçoit un signal, un événement de signal sera déclenché. Les signaux actuellement pris en charge sont SIGINT et SIGTERM. Chaque nom d'événement est exprimé en lettres majuscules du nom du signal (par exemple, l'événement 'SIGINT' correspond au signal SIGINT).
Les événements de signal sont différents des autres événements de processus. Les événements de signal sont préemptés. Lorsqu'un signal se produit, quelle que soit laioLes opérations, qu'il s'agisse d'opérations JavaScript, déclencheront l'événement correspondant dans les plus brefs délais. Par exemple, vous pouvez utiliser le code suivant pour interrompre l'application en cours et afficher l'état d'exécution :
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();
});
Les noms des signaux et leurs significations sont les suivants :
- SIGINT : lorsqu'il est exécuté dans le terminal, il peut être pris en charge par toutes les plates-formes et peut généralement être déclenché par CTRL+C.
- SIGTERM : ce signal est déclenché lorsque le processus est arrêté. Non pris en charge sous Windows.
fonction statique
umask
Changez l'umask actuel, Windows ne prend pas en charge cette méthode
1static Integer process.umask(Integer mask);
Paramètres d'appel :
- mask: Entier, spécifiez le nouveau masque
Résultats de retour :
- Integer, retour au masque précédent
Changez l'umask actuel, Windows ne prend pas en charge cette méthode
1static Integer process.umask(String mask);
Paramètres d'appel :
- mask: String, précise le nouveau masque, chaîne de type octal (ex : "0664")
Résultats de retour :
- Integer, retour au masque précédent
Renvoie le masque umask actuel. Windows ne prend pas en charge cette méthode.
1static Integer process.umask();
Résultats de retour :
- Integer, renvoie la valeur actuelle du masque
hrtime
Renvoie l'heure de haute précision du système. Cette heure n'a rien à voir avec l'heure actuelle et n'est utilisée que pour une synchronisation de haute précision.
1static Array process.hrtime(Array diff = []);
Paramètres d'appel :
- diff: Tableau, heure initiale utilisée pour la comparaison
Résultats de retour :
- Array, renvoie le temps de synchronisation au format [secondes, nanosecondes]
exit
Quittez le processus en cours et renvoyez exitCode comme résultat du processus
1static process.exit();
Quitter le processus en cours et renvoyer le résultat
1static process.exit(Integer code);
Paramètres d'appel :
- code: Entier, renvoie le résultat du processus
cwd
Renvoie le chemin de travail actuel du système d'exploitation
1static String process.cwd();
Résultats de retour :
- String, renvoie le chemin système actuel
dlopen
Chargement dynamique des modules complémentaires C++
1
2
3static process.dlopen(Object module,
String filename,
Integer flags = 1);
Paramètres d'appel :
- module: Objet, spécifie le module à charger
- filename: String, spécifie le nom du fichier du module à charger
- flags: Entier, spécifie la manière de charger le module, la valeur par défaut est 1
chdir
Modifier le chemin de travail actuel du système d'exploitation
1static process.chdir(String directory);
Paramètres d'appel :
- directory: String, spécifiez le nouveau chemin du paramètre
uptime
Interroger la durée d'exécution de l'environnement d'exécution, en secondes
1static Number process.uptime();
Résultats de retour :
- Number, renvoie une valeur numérique représentant le temps
cpuUsage
Interrogez le temps passé par le processus actuel dans le code utilisateur et système, la valeur est une valeur en microsecondes (millionièmes de seconde)
1static Object process.cpuUsage(Object previousValue = {});
Paramètres d'appel :
- previousValue: Objet, spécifie l'heure de la dernière requête
Résultats de retour :
- Object, renvoie un rapport contenant l'heure
Le rapport de mémoire produit des résultats similaires aux suivants :
1
2
3
4{
"user": 132379,
"system": 50507
}
dans:
- l'utilisateur renvoie le temps passé par le processus dans le code utilisateur
- le système renvoie le temps passé par le processus dans le code système
memoryUsage
Interroger le rapport d'utilisation de la mémoire du processus en cours
1static Object process.memoryUsage();
Résultats de retour :
- Object, renvoie un rapport contenant de la mémoire
Le rapport de mémoire produit des résultats similaires aux suivants :
1
2
3
4
5{
"rss": 8622080,
"heapTotal": 4083456,
"heapUsed": 1621800
}
dans:
- rss renvoie la taille de mémoire physique actuelle occupée par le processus
- heapTotal renvoie la taille de la mémoire du tas du moteur v8
- heapUsed renvoie la taille de la mémoire du tas utilisée par le moteur v8
nextTick
démarrer une fibre
1
2static process.nextTick(Function func,
...args);
Paramètres d'appel :
- func: Fonction, précise la fonction exécutée par la fibre
- args: ..., une séquence variadique d'arguments qui sera transmise à la fonction au sein de la fibre
binding
Obtenez le module interne avec le nom spécifié
1static Value process.binding(String name);
Paramètres d'appel :
- name: String, spécifie le nom du module interne à interroger
Résultats de retour :
- Value, renvoie le module interne spécifié
getgid
Interroger l'identifiant de groupe du processus en cours
1static Integer process.getgid();
Résultats de retour :
- Integer, renvoie l'identifiant de groupe du processus en cours
getuid
Interroger l'ID utilisateur du processus en cours
1static Integer process.getuid();
Résultats de retour :
- Integer, renvoie l'identifiant utilisateur du processus en cours
setgid
Définir l'identifiant de groupe du processus en cours
1static process.setgid(Integer id);
Paramètres d'appel :
- id: Nombre entier, spécifiez l'identifiant du groupe à définir
setuid
Définir l'identifiant utilisateur du processus en cours
1static process.setuid(Integer id);
Paramètres d'appel :
- id: Entier, spécifiez l'ID utilisateur à définir
emitWarning
Émettez des avertissements de processus personnalisés ou spécifiques à l’application. Ces événements peuvent être écoutés en ajoutant un gestionnaire à l'événement 'warning'
1
2static process.emitWarning(Value warning,
Object options);
Paramètres d'appel :
- warning: Valeur, précise l'avertissement à émettre
options : objet, options pour spécifier les avertissements
Les options incluent les éléments suivants :
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
}
Comment l'utiliser:
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'
});
Émettez des avertissements de processus personnalisés ou spécifiques à l’application. Ces événements peuvent être écoutés en ajoutant un gestionnaire à l'événement 'warning'
1
2
3static process.emitWarning(Value warning,
String type = "Warning",
String code = "");
Paramètres d'appel :
- warning: Valeur, précise l'avertissement à émettre
- type: String, précise le nom du type d'avertissement à émettre. Par défaut : « Avertissement »
- code: String, spécifie l'identifiant unique de l'instance d'avertissement émise
disconnect
Fermez le canal IPC vers le processus parent
1static process.disconnect();
send
Envoyer un message au processus parent
1static process.send(Value msg);
Paramètres d'appel :
- msg: Valeur, précise le message à envoyer
propriétés statiques
argv
Array, renvoie les paramètres de ligne de commande du processus en cours
1static readonly Array process.argv;
execArgv
Array, renvoie les paramètres de ligne de commande spéciaux du processus en cours. Ces paramètres sont utilisés par fibjs pour définir l'environnement d'exécution.
1static readonly Array process.execArgv;
version
String, renvoie la chaîne de version de fibjs
1static readonly String process.version;
versions
Objet, renvoie les informations de version des fibjs et des composants
1static readonly Object process.versions;
execPath
Chaîne, interrogez le chemin complet du fichier d'exécution en cours d'exécution
1static readonly String process.execPath;
env
Objet, interrogez les variables d'environnement du processus en cours
1static readonly Object process.env;
arch
Chaîne, interrogez l'environnement CPU actuel, les résultats possibles sont 'amd64', 'arm', 'arm64', 'ia32'
1static readonly String process.arch;
platform
Chaîne, interrogez le nom de la plate-forme actuelle, les résultats possibles sont « darwin », « freebsd », « linux » ou « win32 »
1static readonly String process.platform;
pid
Entier, lit l'identifiant du processus pointé par l'objet actuel
1static readonly Integer process.pid;
ppid
Entier, lit l'identifiant du processus parent pointé par l'objet actuel
1static readonly Integer process.ppid;
stdin
Stream, interrogez l'objet d'entrée standard du processus en cours, dansttyZhongweiTTYInputStream, sinonStream
1static readonly Stream process.stdin;
stdout
Stream, interrogez l'objet de sortie standard du processus en cours, dansttyZhongweiTTYOutputStream, sinonStream
1static readonly Stream process.stdout;
stderr
Stream, interrogez l'objet de sortie d'erreur standard du processus actuel, dansttyZhongweiTTYOutputStream, sinonStream
1static readonly Stream process.stderr;
exitCode
Entier, interrogez et définissez le code de sortie du processus en cours
1static Integer process.exitCode;
connected
Booléen, demande si le canal avec le processus parent est connecté normalement
1static readonly Boolean process.connected;