Module de base

processus de module

Module de traitement des processus, utilisé pour gérer les ressources du processus en cours

Méthode de référence :

1
var 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 beforeExitsera déclenché

1
process.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 beforeExitune 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 à beforeExitla 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 beforeExitl'événement ne sera pas déclenché.

événement de sortie

Lorsque fibjs se termine, l'événement exitsera déclenché. Une fois que tous exitles écouteurs liés à l'événement auront terminé leur exécution, le processus se terminera.

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

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

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

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

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

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

1
static process.exit();

Quitter le processus en cours et renvoyer le résultat

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

1
static String process.cwd();

Résultats de retour :

  • String, renvoie le chemin système actuel

dlopen

Chargement dynamique des modules complémentaires C++

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

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

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

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

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

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

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

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

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

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

É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 3
static 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

1
static process.disconnect();

send

Envoyer un message au processus parent

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

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

1
static readonly Array process.execArgv;

version

String, renvoie la chaîne de version de fibjs

1
static readonly String process.version;

versions

Objet, renvoie les informations de version des fibjs et des composants

1
static readonly Object process.versions;

execPath

Chaîne, interrogez le chemin complet du fichier d'exécution en cours d'exécution

1
static readonly String process.execPath;

env

Objet, interrogez les variables d'environnement du processus en cours

1
static readonly Object process.env;

arch

Chaîne, interrogez l'environnement CPU actuel, les résultats possibles sont 'amd64', 'arm', 'arm64', 'ia32'

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

1
static readonly String process.platform;

pid

Entier, lit l'identifiant du processus pointé par l'objet actuel

1
static readonly Integer process.pid;

ppid

Entier, lit l'identifiant du processus parent pointé par l'objet actuel

1
static readonly Integer process.ppid;

stdin

Stream, interrogez l'objet d'entrée standard du processus en cours, dansttyZhongweiTTYInputStream, sinonStream

1
static readonly Stream process.stdin;

stdout

Stream, interrogez l'objet de sortie standard du processus en cours, dansttyZhongweiTTYOutputStream, sinonStream

1
static readonly Stream process.stdout;

stderr

Stream, interrogez l'objet de sortie d'erreur standard du processus actuel, dansttyZhongweiTTYOutputStream, sinonStream

1
static readonly Stream process.stderr;

exitCode

Entier, interrogez et définissez le code de sortie du processus en cours

1
static Integer process.exitCode;

connected

Booléen, demande si le canal avec le processus parent est connecté normalement

1
static readonly Boolean process.connected;