Module module de base

Processus de 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énement.

é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 les beforeExitliaisons d'événements de l'écouteur de rappel démarrent 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énement 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 lancez une exception non interceptée, l' beforeExitévénement ne sera pas déclenché.

événement de sortie

Lorsque fibjs se termine, 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énement n'a qu'un seul paramètre d'entrée. La valeur de ce paramètre peut être process.exitCode La valeur de l'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éclenche 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 l'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 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 : lorsque le terminal est en cours d'exécution, 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 tué. 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, Retour 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: String, spécifiez un nouveau masque, type de chaîne octal (ex: "0664")

Résultat de retour :

  • Integer, Retour au masque précédent

Renvoie le 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, uniquement utilisée pour la synchronisation de haute précision

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

Paramètres d'appel :

  • diff: Array, le temps initial pour la comparaison

Résultat de retour :

  • Array, Renvoie le temps de synchronisation, le format est [secondes, nanosecondes]

exit

Quitte le processus en cours et renvoie exitCode comme résultat du processus

1
static process.exit();

Quitter le processus en cours et retourner 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ésultat de retour :

  • String, Renvoie le chemin 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: String, spécifiez le nouveau chemin à définir

uptime

Interroger le temps d'exécution de l'environnement d'exécution, en secondes

1
static Number process.uptime();

Résultat de retour :

  • Number, Renvoie la valeur représentant le temps

memoryUsage

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

1
static Object process.memoryUsage();

Résultat de retour :

  • Object, Le retour 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 de 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ètre variable, cette séquence sera passée à la fonction dans la fibre

binding

Obtenir le module interne du nom spécifié

1
static Value process.binding(String name);

Paramètres d'appel :

  • name: String, spécifiez le nom du module interne à interroger

Résultat de retour :

  • Value, Renvoie le module interne spécifié

Propriétés statiques

argv

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

1
static readonly Array process.execArgv;

version

Chaîne, 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

String, interroge le chemin complet du fichier d'exécution en cours d'exécution

1
static readonly String process.execPath;

env

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

1
static readonly Object process.env;

arch

Chaîne, interroge l'environnement de processeur 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 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, Interroger l'objet d'entrée standard du processus en cours, dans tty Dans TTYInputStream, Sinon Stream

1
static readonly Stream process.stdin;

stdout

Stream, Interroger l'objet de sortie standard du processus en cours, dans tty Dans TTYOutputStream, Sinon Stream

1
static readonly Stream process.stdout;

stderr

Stream, Interroger l'objet de sortie d'erreur standard du processus en cours, dans tty Dans TTYOutputStream, Sinon Stream

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;