utilityProcess
utilityProcess
crée un processus enfant avec Node.js et les Message ports activés. Il fournit l'équivalent de l'API child_process.fork
de Node. s mais utilise plutôt API Services de Chromium pour lancer le processus fils.
Processus : Main
Méthodes
utilityProcess.fork(modulePath[, args][, options])
modulePath
string - Chemin vers le script qui doit s'exécuter comme point d'entrée dans le processus fils.args
string[] (facultatif) - Liste des arguments dde type string qui seront disponibles en tant queprocess.argv
dans le processus enfant.
Retourne UtilityProcess
Class: UtilityProcess
Les instances de
UtilityProcess
représentent les processus enfants engendrés par Chromium avec intégration de Node.js.
UtilityProcess
est un EventEmitter.
Méthodes d’instance
child.postMessage(message, [transfer])
message
anytransfer
MessagePortMain[] (facultatif)
Envoie un message au processus principal, en transférant éventuellement la détention d'objets MessagePortMain
.
Par exemple :
// Main process
const { port1, port2 } = new MessageChannelMain()
const child = utilityProcess.fork(path.join(__dirname, 'test.js'))
child.postMessage({ message: 'hello' }, [port1])
// Child process
process.parentPort.once('message', (e) => {
const [port] = e.ports
// ...
})
child.kill()
Retourne boolean
Arrête le processus avec soin. Sur POSIX, il utilise SIGTERM mais veillera à ce que le processus soit récolté à la sortie. Cette fonction renvoie true si le kill est réussi, et false sinon.
Propriétés d'instance
child.pid
Integer | undefined
représentant l’identifiant de processus (PID) du processus enfant. Si le processus enfant, en raison d'erreurs, ne parvient pas à être généré, la valeur sera undefined
. Lorsque le processus enfant se termine, la valeur est undefined
après l'émission de l'événement exit
.
child.stdout
NodeJS.ReadableStream | null
représente le résultat du processus enfant. Si l'enfant a été lancé avec options.stdio[1] défini à autre chose que 'pipe', alors ce sera null
. Lorsque le processus enfant se termine, la valeur est null
après l'émission de l'événement exit
.
// Processus principal
const { port1, port2 } = new MessageChannelMain()
const child = utilityProcess.fork(path.join(__dirname, 'test.js'))
child.stdout.on('data', (data) => {
console.log(`Received chunk ${data}`)
})
child.stderr
Un NodeJS.ReadableStream | null
qui représente le stderr du processus enfant. Si l'enfant a été lancé avec options.stdio[2] défini à autre chose que 'pipe', alors ce sera null
. Lorsque le processus enfant se termine, la valeur est null
après l'émission de l'événement exit
.
Événements d’instance
Event: 'spawn'
Émis une fois que le processus fils a été créé avec succès.
Event: 'exit'
Retourne :
code
number - Contient le code de sortie du processus obtenu à partir de waitpid sur Posix ou GetExitCodeProcess sur Windows.
Émis après la fin du processus enfant.
Événement : 'message'
Retourne :
message
any
Émis lorsque le processus enfant envoie un message à l’aide de process.parentPort.postMessage().
.