title: node.js spawned process sticks around if script is killed
body: <p>Is it possible to make sure that processes spawned with node.js child_process will be killed when the parent is killed?</p>
  
  <p>Here's an example script</p>
  
  <pre><code>var spawn = require('child_process').spawn;
  var log_tail = spawn("tail", ["-f", "/dev/null"]);
  
  setInterval(function() {
    console.log('just chilling');
  }, 10000);
  </code></pre>
  
  <p>If I look at the process tree I see this:</p>
  
  <pre><code>$ 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
  </code></pre>
  
  <p>Then later I need to stop that script and can't ctrl-c (say my ssh connection is lost)</p>
  
  <pre><code>$ kill 10149
  $ ps faux
  ubuntu   10151  0.0  0.0   7184   608 pts/7    S    15:07   0:00 tail -f /dev/null
  </code></pre>
  
  <p>You can see that the tail process is still running and has become detached from any parent.</p>
  
  <p>Is there a programatic way to kill a spawned process if the spawner is killed?</p>
  
  <p>Is there an option I can pass to spawn or should I use a different method or do I need to catch the kill signal (and will that work for a kill -9)?</p>