Можно ли убедиться, что процессы, порожденные дочерним процессом node.js _, будут уничтожены при уничтожении родителя?
Вот пример скрипта
var spawn = require('child_process').spawn;
var log_tail = spawn("tail", ["-f", "/dev/null"]);
setInterval(function() {
console.log('just chilling');
}, 10000);
Если я посмотрю на дерево процессов, то увижу это:
$ ps faux
ubuntu 9788 0.0 0.0 73352 1840 ? S 15:04 0:00 | \_ sshd: ubuntu@pts/7
ubuntu 9789 0.0 0.2 25400 6804 pts/7 Ss 15:04 0:00 | \_ -bash
ubuntu 10149 1.0 0.2 655636 8696 pts/7 Sl+ 15:07 0:00 | \_ node test.js
ubuntu 10151 0.0 0.0 7184 608 pts/7 S+ 15:07 0:00 | \_ tail -f /dev/null
Затем позже мне нужно остановить этот скрипт, и я не могу ctrl -c (сказать, что мое соединение ssh потеряно)
$ kill 10149
$ ps faux
ubuntu 10151 0.0 0.0 7184 608 pts/7 S 15:07 0:00 tail -f /dev/null
Вы можете видеть, что хвостовой процесс все еще работает и отсоединен от какого-либо родителя.
Есть ли программный способ убить порожденный процесс, если порождающий процесс убит?
Есть ли вариант, который я могу использовать для появления, или мне следует использовать другой метод, или мне нужно поймать сигнал об убийстве (и будет ли это работать для убийства -9 )?