gvfsd
Mount and manage virtual file systems
SYNOPSIS
gvfsd [OPTION...]
PARAMETERS
--help
Prints a summary of command-line options and exits.
--version
Prints the version information and exits.
--debug
Enables verbose debugging output to standard error.
--no-daemon
Runs gvfsd in the foreground instead of daemonizing. Useful for debugging.
--no-mount
Prevents gvfsd from automatically mounting the GvfsFilesystem. Primarily for internal debugging.
DESCRIPTION
gvfsd is the main daemon for the GNOME Virtual File System (GVFS), a crucial component of modern GNOME-based desktop environments. It provides a high-level, D-Bus-based abstraction layer for various file systems and storage mechanisms, allowing applications to access local, remote (e.g., FTP, SMB, SSH, WebDAV), and special file systems (like Trash, CD/DVD drives, MTP devices) in a unified manner.
The daemon orchestrates communication between applications (which use the GIO library) and the various GVFS backends (e.g., gvfs-sftp-volume-monitor, gvfs-smb-volume-monitor). It handles mounting, unmounting, and managing these file systems, making them appear as standard directories in the user's home directory (e.g., under ~/.gvfs/ or /run/user/<uid>/gvfs/).
Typically, gvfsd runs as a background process for each user session, automatically started by the desktop environment (like gnome-session). Its robust design allows file managers like Nautilus and other GNOME applications to seamlessly browse and interact with diverse data sources without needing to understand the underlying protocol specifics.
CAVEATS
gvfsd is a system daemon designed for automatic operation within a desktop environment. Direct manual execution or termination by an end-user is generally not recommended as it can disrupt file browsing and application functionality in GNOME.
It relies heavily on the D-Bus message bus system for inter-process communication. If D-Bus is not running or misconfigured, gvfsd may not function correctly.
D-BUS INTEGRATION
gvfsd exposes its services via D-Bus, allowing applications using the GIO library to interact with various file systems without needing to know the specifics of the underlying protocols. This D-Bus-centric architecture enables a highly modular and extensible system where new backends can be added without modifying the core daemon.
DEBUGGING GVFS
For debugging issues with GVFS, one can run gvfsd in the foreground with debug output. A common method is to use:
G_MESSAGES_DEBUG=all gvfsd --no-daemon
This command provides detailed logs that can help in diagnosing problems with specific GVFS backends or file operations.
HISTORY
gvfsd and the GVFS framework were introduced as part of GNOME 2.22 (released in March 2008) to modernize and eventually replace the older GNOME VFS (Virtual File System). The primary motivations for this transition were to leverage the then-newer GIO (GLib I/O) library for I/O operations, improve extensibility with D-Bus services, and provide better integration with non-local filesystems.
The older GNOME VFS had limitations, particularly with asynchronous operations and D-Bus integration. GVFS was designed from the ground up to address these, offering a more robust and flexible architecture for handling file operations across various protocols and media. Its development marked a significant step in enhancing user experience by providing seamless access to diverse data sources within the GNOME desktop.
SEE ALSO
gio(1), gvfs-mount(1), gvfs-backends(7), dbus-daemon(1), nautilus(1), gnome-session(1)