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 une instance d' EventEmitter , qui peut répondre aux événements de niveau processus en enregistrant un écouteur d'événements.

Événement beforeExit

Lorsque la tâche de fibjs est vide et qu'aucun travail supplémentaire n'est ajouté, l'événement beforeExit sera 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 termine. Mais si la fonction de rappel de l'écouteur lié à l'événement beforeExit démarre une nouvelle tâche, telle que le démarrage d'une fibre, le processus fibjs continuera de s'exécuter.

process.exitCode est transmis en tant que seule valeur de paramètre à la fonction de rappel de l' beforeExit événement beforeExit . Si le processus est sur le point de se terminer pour des raisons explicites, telles que l'appel direct de process.exit ou le lancement d'une exception non beforeExit , l'événement beforeExit ne sera pas déclenché.

événement de sortie

Lorsque fibjs se termine, la exit l'événement est déclenchée. Une fois que tous les écouteurs liés à l'événement de exit sont exécutés, le processus se termine

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

La fonction de rappel de l'écouteur d'événement de exit n'a qu'un seul paramètre d'entrée. La valeur de ce paramètre peut être la valeur d'attribut de process.exitCode ou la valeur de exitCode transmise lors de l'appel de la méthode process.exit .

É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. Le nom de chaque événement est indiqué par la mise en 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, quelle que soit l'opération io cours ou l'opération JavaScript, l'événement correspondant sera déclenché 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 peut généralement être déclenché par CTRL + C.
  • SIGTERM: Ce signal est déclenché lorsque le processus est interrompu. Non pris en charge sous Windows.

Fonction statique

umask

Modifier 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 , retourne le masque précédent

Modifier 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 (par exemple: "0664")

Résultat de retour:

  • Integer , retourne le 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 , retourne la valeur actuelle du masque

hrtime

Renvoie l'heure de haute précision du système

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

Paramètres d'appel:

  • diff : Array, temps initial de comparaison

Résultat de retour:

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

exit

Quittez le processus en cours et renvoyez exitCode comme résultat du processus

1
static process.exit();

Quittez le processus en cours et retournez le résultat

1
static process.exit(Integer code);

Paramètres d'appel:

  • code : entier, résultat du processus de retour

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 : chaîne, spécifiez un nouveau chemin

uptime

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

1
static Number process.uptime();

Résultat de retour:

  • Number , renvoie une valeur numérique représentant le temps

memoryUsage

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

1
static Object process.memoryUsage();

Résultat de retour:

  • Object , retourne le 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 }

parmi eux:

  • rss renvoie la taille actuelle de la mémoire physique du 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 : Function, formule la fonction d'exécution de la fibre
  • args : ..., séquence de paramètres variables, cette séquence sera passée à la fonction dans la fibre

binding

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

1
static Value process.binding(String name);

Paramètres d'appel:

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

Résultat de retour:

  • Value , retourne le module interne spécifié

open

Exécutez la ligne de commande spécifiée, reprenez les flux d'entrée et de sortie du processus et renvoyez l'objet de processus

1 2 3
static SubProcess process.open(String command, Array args, Object opts = {});

Paramètres d'appel:

  • command : String, spécifiez la ligne de commande à exécuter
  • args : Array, spécifiez la liste des paramètres à exécuter
  • opts : objet, spécifiez les options d'exécution

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat de l'opération

Les options prises en charge par opts sont les suivantes:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Exécutez la ligne de commande spécifiée, reprenez les flux d'entrée et de sortie du processus et renvoyez l'objet de processus

1 2
static SubProcess process.open(String command, Object opts = {});

Paramètres d'appel:

  • command : String, spécifiez la ligne de commande à exécuter
  • opts : objet, spécifiez les options d'exécution

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat de l'opération

Les options prises en charge par opts sont les suivantes:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

start

Exécutez la ligne de commande spécifiée et renvoyez l'objet de processus

1 2 3
static SubProcess process.start(String command, Array args, Object opts = {});

Paramètres d'appel:

  • command : String, spécifiez la ligne de commande à exécuter
  • args : Array, spécifiez la liste des paramètres à exécuter
  • opts : objet, spécifiez les options d'exécution

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat de l'opération

Les options prises en charge par opts sont les suivantes:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Exécutez la ligne de commande spécifiée et renvoyez l'objet de processus

1 2
static SubProcess process.start(String command, Object opts = {});

Paramètres d'appel:

  • command : String, spécifiez la ligne de commande à exécuter
  • opts : objet, spécifiez les options d'exécution

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat de l'opération

Les options prises en charge par opts sont les suivantes:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

run

Exécutez la ligne de commande spécifiée et renvoyez le code de fin du processus

1 2 3
static Integer process.run(String command, Array args, Object opts = {}) async;

Paramètres d'appel:

  • command : String, spécifiez la ligne de commande à exécuter
  • args : Array, spécifiez la liste des paramètres à exécuter
  • opts : objet, spécifiez les options d'exécution

Résultat de retour:

  • Integer , retourne le résultat en cours de la commande

Les options prises en charge par opts sont les suivantes:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Exécutez la ligne de commande spécifiée et renvoyez le code de fin du processus

1 2
static Integer process.run(String command, Object opts = {}) async;

Paramètres d'appel:

  • command : String, spécifiez la ligne de commande à exécuter
  • opts : objet, spécifiez les options d'exécution

Résultat de retour:

  • Integer , retourne le résultat en cours de la commande

Les options prises en charge par opts sont les suivantes:

1 2 3 4
{ "timeout": 100, // 单位为 ms "env": {} // 进程环境变量 }

Propriété statique

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'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

Object, 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, interroger 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 plateforme actuelle, le résultat possible est'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'identifiant du processus parent pointé par l'objet courant

1
static readonly Integer process.ppid;

stdin

File , interroger l'objet d'entrée standard du processus en cours

1
static readonly File process.stdin;

stdout

File , interroger l'objet de sortie standard du processus en cours

1
static readonly File process.stdout;

stderr

File , interroger l'objet de sortie d'erreur standard du processus en cours

1
static readonly File process.stderr;

exitCode

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

1
static Integer process.exitCode;