code: func (c *Client) ReattachConfig() *ReattachConfig {
  	c.l.Lock()
  	defer c.l.Unlock()
  
  	if c.address == nil {
  		return nil
  	}
  
  	if c.config.Cmd != nil && c.config.Cmd.Process == nil {
  		return nil
  	}
  
  	// If we connected via reattach, just return the information as-is
  	if c.config.Reattach != nil {
  		return c.config.Reattach
  	}
  
  	return &ReattachConfig{
  		Protocol: c.protocol,
  		Addr:     c.address,
  		Pid:      c.config.Cmd.Process.Pid,
  	}
  }
docs: // ReattachConfig returns the information that must be provided to NewClient
  // to reattach to the plugin process that this client started. This is
  // useful for plugins that detach from their parent process.
  //
  // If this returns nil then the process hasn't been started yet. Please
  // call Start or Client before calling this.