title: Why process created by exec.Start() quits if its parent is killed by SIGINT?
body: <p>I found a strange problem in golang.The program executed by <code>exec.Start()</code> will quit if the parent program is interrupt by the signal os.Interrupt,while the child program will NOT quit if the parent program exit normally.What's the difference between that two conditions?
     For examples:</p>
  
  <pre><code>package main
  
  import "fmt"
  import "os"
  import "time"
  import "os/exec"
  
  func main(){
      cmd := exec.Command("sleep", "100000")
      cmd.Env = os.Environ()
      fmt.Println(cmd.Env)
      cmd.Start()
  
      time.Sleep(1e9*20)
      return
  } 
  </code></pre>
  
  <p>In the later condition the parent of <code>sleep 100000</code> will be the <code>init process</code> after 20s if we didn't interrupt the main program.</p>