Как создать дочерний процесс с помощью Node.js

Узнайте, как создать дочерний процесс с помощью Node.js

Node.js предоставляетchild_processмодуль, который предоставляет возможность запускать дочерние процессы.

Требуйте модуль и получитеspawnфункция от него:

const { spawn } = require('child_process')

тогда ты можешь позвонитьspawn()передача 2 параметров.

Впервый параметрэто команда для запуска.

Ввторой параметрпредставляет собой массив, содержащий список опций.

Вот пример:

spawn('ls', ['-lh', 'test'])

В этом случае вы запускаетеlsкоманда с двумя вариантами:-lhиtest. Это приводит к командеls -lh test, что (при условии, чтоtestфайл существует в той же папке, в которой вы запускаете эту команду), приводит к подробным сведениям о файле:

-rw-r--r--  1 flaviocopes  staff     6B Sep 25 09:57 test

Результатspawn()вызов функции является экземпляромChildProcessкласс, определяющий порожденный дочерний процесс.

Вот немного более сложный пример, полностью рабочий. Мы смотримtestфайл, и всякий раз, когда он изменяется, мы запускаемls -lhкоманда на нем:

'use strict'

const fs = require(‘fs’) const { spawn } = require(‘child_process’) const filename = ‘test’

fs.watch(filename, () => { const ls = spawn(‘ls’, [’-lh’, filename]) })

Не хватает одного. Мы должны передать вывод дочернего процесса основному процессу, иначе мы не увидим никаких результатов.

Мы делаем это, вызываяpipe()метод наstdoutсвойство дочернего процесса:

'use strict'

const fs = require(‘fs’) const { spawn } = require(‘child_process’) const filename = ‘test’

fs.watch(filename, () => { const ls = spawn(‘ls’, [’-lh’, filename]) ls.stdout.pipe(process.stdout) })

Скачать мою бесплатнуюСправочник по Node.js


Дополнительные руководства по узлам: