Child Process Flashcards

1
Q

child_process.exec(command[, options][, callback])

A

Порождает оболочку и выполняет команду внутри этой оболочки, передавая stdout и stderr в функцию обратного вызова после завершения. Возвращает экземпляр ChildProcess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

child_process.execFile()

A

аналогичен child_process.exec(), за исключением того, что он порождает команду напрямую, без предварительного порождения оболочки по умолчанию. Возвращает экземпляр ChildProcess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

child_process.fork()

A

Порождает новый процесс Node.js и вызывает указанный модуль с установленным каналом связи IPC, который позволяет отправлять сообщения между родительским и дочерним процессами. Возвращает экземпляр ChildProcess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

child_process.spawn()

A

Порождает дочерний процесс асинхронно, не блокируя цикл событий Node.js. Возвращает экземпляр ChildProcess.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Событие: ‘close’

A

Событие ‘close’ испускается после завершения процесса и закрытия потоков stdio дочернего процесса. Оно отличается от события ‘exit’, поскольку несколько процессов могут использовать одни и те же потоки stdio. Событие ‘close’ всегда будет происходить после того, как уже произошло событие ‘exit’, или ‘error’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Событие: disconnect¶

A

Событие disconnect возникает после вызова метода subprocess.disconnect() в родительском процессе или process.disconnect() в дочернем процессе. После отключения невозможно отправлять или получать сообщения, а свойство subprocess.connected равно false.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Событие: error¶

A

Событие ‘error’ генерируется всякий раз, когда:

Процесс не может быть порожден.
Процесс не может быть завершен.
Отправка сообщения дочернему процессу не удалась.
Дочерний процесс был прерван через опцию signal.
Событие ‘exit’ может сработать или не сработать после возникновения ошибки. При прослушивании событий ‘exit’ и ‘error’ предохраняйтесь от случайного многократного вызова функций-обработчиков.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Событие: message¶

A

Событие ‘message’ срабатывает, когда дочерний процесс использует process.send() для отправки сообщений. Сообщение проходит через сериализацию и разбор. Полученное сообщение может отличаться от первоначально отправленного.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Событие: spawn¶

A

Событие ‘spawn’ происходит после успешного порождения дочернего процесса. Если дочерний процесс не был успешно порожден, событие ‘spawn’ не испускается, а вместо него испускается событие ‘error’

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Событие: exit¶

A

Событие ‘exit’ выдается после завершения дочернего процесса. Если процесс завершился, то code - это код завершения процесса, иначе null. Если процесс завершился из-за получения сигнала, то signal - строковое имя сигнала, иначе null. Одно из этих двух значений всегда будет не null.

Когда срабатывает событие `‘exit’’, потоки stdio дочерних процессов могут быть все еще открыты.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

subprocess.disconnect()

A

Закрывает IPC-канал между родительским и дочерним процессами, позволяя дочернему процессу изящно завершить работу, когда не останется других соединений, поддерживающих его жизнь. После вызова этого метода свойства subprocess.connected и process.connected в родительском и дочернем процессах (соответственно) будут установлены в false, и передача сообщений между процессами будет невозможна.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

subprocess.kill([signal])

A

signal {number|string}
Возвращает: {boolean}
Метод subprocess.kill() посылает сигнал дочернему процессу. Если аргумент не указан, процессу будет послан сигнал ‘SIGTERM’. Эта функция возвращает true, если kill(2) завершился успешно, и false в противном случае.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

subprocess.send(message[, sendHandle[, options]][, callback])

A

Возвращает: {boolean}

Когда между родительским и дочерним процессами установлен IPC-канал (т.е. при использовании child_process.fork()), метод subprocess.send() может быть использован для отправки сообщений дочернему процессу. Когда дочерний процесс является экземпляром Node.js, эти сообщения могут быть получены через событие ‘message’.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly