Module module de base

Processus du module

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

Méthode de référence:

1
var process = require('process');

Événement de processus

L'objet module de processus est EventEmitter Par exemple, vous pouvez répondre aux événements au niveau du processus en enregistrant des écouteurs d'événements.

Événement beforeExit

Lorsque la mission fibjs est vide et qu'aucun travail supplémentaire n'est ajouté, l'événement beforeExitest déclenché

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

Dans des circonstances normales, si aucun travail supplémentaire n'est ajouté à la file d'attente des tâches, le processus fibjs se terminera. Mais si l' beforeExitévénement de l'écouteur de rappel se lie, démarrez une nouvelle tâche, telle que l'ouverture d'une fibre, le processus fibjs continuera à s'exécuter.

process.exitCodeEn tant que seul paramètre passé à la valeur de beforeExitl'écouteur d'événements de la fonction de rappel. Si le processus est sur le point de se terminer pour des raisons explicites, telles que l'appel directprocess.exitOu lancer une exception non interceptée, l' beforeExitévénement ne sera pas déclenché.

événement de sortie

Lorsque fibjs se terminera, l'événement exitsera déclenché une fois que toute l' exitexécution de l'écouteur de liaison d'événement sera terminée, le processus sera terminé

1
process.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 être process.exitCode La valeur d'attribut, ou appel process.exitLorsque la méthode a passé la exitCodevaleur.

Événement de signal

Lorsque le processus fibjs reçoit un signal, il déclenchera un événement de signal Les signaux actuellement pris en charge sont SIGINT et SIGTERM. Chaque nom d'événement est représenté par la majuscule 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, quel que soit le courant ioL'opération, ou opération JavaScript, déclenchera l'événement correspondant dès que possible. Par exemple, vous pouvez utiliser le code suivant pour interrompre l'application en cours et afficher l'état en cours 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 leur signification sont les suivants:

  • SIGINT: Lorsque le terminal est en cours d'exécution, il peut être pris en charge par toutes les plates-formes, et il 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

Changer le 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 un nouveau masque

Résultat de retour:

  • Integer, Revenir au masque précédent

Changer le umask actuel, Windows ne prend pas en charge cette méthode

1
static Integer process.umask(String mask);

Paramètres d'appel:

  • mask: Chaîne, spécifiez un nouveau masque, type de chaîne octal (par exemple: "0664")

Résultat de retour:

  • Integer, Revenir au masque précédent

Renvoie l'umask actuel, Windows ne prend pas en charge cette méthode

1
static Integer process.umask();

Résultat 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 la synchronisation de haute précision.

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

Paramètres d'appel:

  • diff: Array, l'heure initiale de comparaison

Résultat de retour:

  • Array, Renvoie le temps de chronométrage, le format est [secondes, nanosecondes]

exit

Quitter le processus en cours et renvoyer exitCode comme résultat du processus

1
static process.exit();

Quittez le processus en cours et renvoyez le résultat

1
static process.exit(Integer code);

Paramètres d'appel:

  • code: Entier, retourne le résultat du processus

cwd

Renvoie le chemin de travail actuel du système d'exploitation

1
static String process.cwd();

Résultat de retour:

  • String, Renvoie le chemin du système actuel

chdir

Modifier le chemin de travail actuel du système d'exploitation

1
static process.chdir(String directory);

Paramètres d'appel:

  • directory: Chaîne, spécifiez le nouveau chemin à définir

uptime

Interroger la durée d'exécution de l'environnement en cours d'exécution, en secondes

1
static Number process.uptime();

Résultat de retour:

  • Number, Renvoie la valeur représentant l'heure

memoryUsage

Interroger le rapport d'utilisation de la mémoire du processus en cours

1
static Object process.memoryUsage();

Résultat de retour:

  • Object, Return contient un rapport de mémoire

Le rapport de mémoire génère des résultats similaires aux suivants:

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

parmi eux:

  • rss renvoie la taille de la mémoire physique actuellement 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 de 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, spécifiez la fonction à exécuter par la fibre
  • args: ..., séquence de paramètres variables, cette séquence sera transmise à la fonction dans la fibre

binding

Récupère le module interne du nom spécifié

1
static Value process.binding(String name);

Paramètres d'appel:

  • name: Chaîne, spécifiez le nom du module interne à interroger

Résultat de retour:

  • Value, Renvoie le module interne spécifié

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, retourne 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'exploitation

1
static readonly Array process.execArgv;

version

Chaîne, retourne la chaîne de version de fibjs

1
static readonly String process.version;

versions

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

1
static readonly Object process.versions;

execPath

String, 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

String, 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 «arwin», «freebsd», «linux» ou «win32»

1
static readonly String process.platform;

pid

Entier, lit l'id du processus pointé par l'objet courant

1
static readonly Integer process.pid;

ppid

Entier, lit l'id du processus parent pointé par l'objet courant

1
static readonly Integer process.ppid;

stdin

Stream, Interroge l'objet d'entrée standard du processus en cours

1
static readonly Stream process.stdin;

stdout

Stream, Interroge l'objet de sortie standard du processus en cours

1
static readonly Stream process.stdout;

stderr

Stream, Interroge l'objet de sortie d'erreur standard du processus en cours

1
static readonly Stream process.stderr;

exitCode

Entier, interroger et définir le code de sortie du processus en cours

1
static Integer process.exitCode;