code: func (a *Handler) Quit() error {
  	err := a.process.Signal(os.Interrupt)
  	if err != nil {
  		return err
  	}
  
  	c := make(chan error)
  	go func() {
  		_, err := a.process.Wait()
  		c <- err
  	}()
  	select {
  	case err = <-c:
  	case <-time.After(5 * time.Second):
  		// TODO Do we want to SIGKILL here or just leave the app alone?
  		err = errProcessTookTooLong
  	}
  	return err
  }
docs: // Quit sends the app's process a SIGINT, and waits up to 5 seconds for it
  // to exit, returning an error if it doesn't.