Я использую spawn
для создания дочерних процессов. Я хочу создать дочерний процесс и после он запущен Я хочу выйти из текущего процесса.Обработка дочернего процесса начиная с
var Spawn = require("child_process").spawn;
var sp = Spawn("sleep", ["10000"]);
sp.unref();
process.exit();
Код выше работает отлично: он создает дочерний процесс (sleep
), который будет жить 10 секунд и текущий процесс завершается.
Могу ли я быть уверенным, что когда я делаю process.exit()
, процесс активен или заканчивается родительский процесс, также будет убит и дочерний процесс?
В этом простом примере process.exit()
бесполезен, так как процесс все равно закончится, потому что я звоню unref
. Однако это всего лишь пример.
Итак, есть ли какие-либо события для прослушивания от sp
(детский процесс), который говорит мне, что эй я активен?
В некоторых случаях (например, var sp = Spawn("node", ["foo", "--bar"]);
) Я вижу [nodejs] <defunct>
на выходе ps aux | grep node
, сразу после вызова икры. Это происходит в режиме отладки, где я могу управлять запуском приложения. Это значит, что процесс еще не активирован, я думаю.
сигналы друг. –