code: func (a *AgentServer) ListenUnixSocket(path string, uid, gid int, mode os.FileMode) error {
  	l, err := net.Listen("unix", path)
  	if err != nil {
  		return trace.Wrap(err)
  	}
  	if err := os.Chown(path, uid, gid); err != nil {
  		l.Close()
  		return trace.ConvertSystemError(err)
  	}
  	if err := os.Chmod(path, mode); err != nil {
  		l.Close()
  		return trace.ConvertSystemError(err)
  	}
  	a.listener = l
  	a.path = path
  	return nil
  }
docs: // ListenUnixSocket starts listening and serving agent assuming that