code: func (d *Daemon) Shutdown() error {
  	if d.hasShutdown {
  		return nil
  	}
  
  	d.hasShutdown = true
  	if err := d.lock.Unlock(); err != nil {
  		return fmt.Errorf("Could not unlock: %s", err)
  	}
  
  	if err := d.proxy.Close(); err != nil {
  		return fmt.Errorf("Could not stop http proxy: %s", err)
  	}
  
  	if err := d.db.Close(); err != nil {
  		return fmt.Errorf("Could not close db: %s", err)
  	}
  
  	if err := d.updates.Stop(); err != nil {
  		return fmt.Errorf("Could not stop update checker: %s", err)
  	}
  
  	return nil
  }
docs: // Shutdown gracefully shuts down the daemon.