The primary task of gvfsd is to act as a mount tracker/manager. It spawns new backends when requested and keeps track fo their lifecycle, maintaining a list of active mounts and creates direct connections to them.
Since gvfs backends are running as children of the gvfsd process, it is possible to start gvfsd in a terminal and set environment variables to get debug output from individual backends.
gvfsd also starts the gvfsd-fuse(1), and provides it the mount point where the fuse file system should be mounted.
On success 0 is returned, a non-zero failure code otherwise.