code: func (c *Client) procReader(ctx context.Context, src string) (*types.FileTransferInformation, error) {
  	for {
  		info, err := c.FileManager.InitiateFileTransferFromGuest(ctx, c.Authentication, src)
  		if err != nil {
  			if soap.IsSoapFault(err) {
  				if _, ok := soap.ToSoapFault(err).VimFault().(types.CannotAccessFile); ok {
  					// We're not waiting in between retries since ProcessManager.Stat
  					// has already waited.  In the case that this client was pointed at
  					// standard vmware-tools, the types.NotFound fault would have been
  					// returned since the file "/proc/$pid/stdout" does not exist - in
  					// which case, we won't retry at all.
  					continue
  				}
  			}
  
  			return nil, err
  		}
  
  		return info, err
  	}
  }
docs: // procReader retries InitiateFileTransferFromGuest calls if toolbox is still running the process.
  // See also: ProcessManager.Stat