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 des écouteurs 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 terminera. Mais si une nouvelle tâche est lancée dans la fonction de rappel de l'écouteur lié à l'événement beforeExit , comme le démarrage d'une fibre, alors le processus fibjs continuera à s'exécuter.

process.exitCode est passé à la fonction de rappel de l' beforeExit événement beforeExit comme seule valeur de paramètre. 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

À la sortie de fibjs, l'événement de exit sera déclenché. Une fois que tous les écouteurs liés à l'événement de exit seront exécutés, le processus se terminera

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 lorsque la méthode process.exit est appelée.

É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. Le nom de chaque événement est exprimé en 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, indépendamment de l'opération io ou de l'opération JavaScript en cours, l'événement correspondant est déclenché 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 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 l'umask actuel, Windows ne prend pas en charge cette méthode

1
static Integer process.umask(Integer mask);

Paramètres d'appel:

  • mask : Integer, spécifiez un nouveau masque

Résultat de retour:

  • Integer , renvoie le masque précédent

Changer l'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 chaîne octale (par exemple: "0664")

Résultat de retour:

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

hrtime

Renvoie l'heure haute précision du système, cette heure n'a rien à voir avec l'heure actuelle, utilisée uniquement pour la synchronisation haute précision

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

Paramètres d'appel:

  • diff : Array, heure initiale de 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();

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 d'accès 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 jeu de chemins

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 actuel

1
static Object process.memoryUsage();

Résultat de retour:

  • Object , 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 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 : Function, spécifie la fonction exécutée par la fibre
  • args : ..., une séquence de paramètres variables, cette séquence sera passée à 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 : String, spécifiez le name du module interne à interroger

Résultat de retour:

  • Value , renvoie le module interne spécifié

open

Exécutez la ligne de commande spécifiée, reprenez le 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 : Object, spécifiez les options à exécuter

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat en cours

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 le 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 : Object, spécifiez les options à exécuter

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat en cours

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 à exécuter

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat en cours

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 à exécuter

Résultat de retour:

  • SubProcess , retourne l'objet de processus contenant le résultat en cours

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 : Object, spécifiez les options à exécuter

Résultat de retour:

  • Integer , renvoie le résultat 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 : Object, spécifiez les options à exécuter

Résultat de retour:

  • Integer , renvoie le résultat de la commande

Les options prises en charge par opts sont les suivantes:

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

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

String, retourne la chaîne de version fibjs

1
static readonly String process.version;

versions

Object, 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 actuel

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 plateforme actuelle, les résultats possibles sont'darwin ',' 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

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

1
static readonly File process.stdin;

stdout

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

1
static readonly File process.stdout;

stderr

File , interrogez 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;