LinuxCommandLibrary

transmission-daemon

Run Transmission BitTorrent client in the background

TLDR

Start a headless transmission session

$ transmission-daemon
copy

Start and watch a specific directory for new torrents
$ transmission-daemon [[-c|--watch-dir]] [path/to/directory]
copy

Dump daemon settings in JSON format
$ transmission-daemon [[-d|--dump-settings]] > [path/to/file.json]
copy

Start with specific settings for the web interface
$ transmission-daemon [[-t|--auth]] [[-u|--username]] [username] [[-v|--password]] [password] [[-p|--port]] [9091] [[-a|--allowed]] [127.0.0.1]
copy

SYNOPSIS

transmission-daemon [OPTIONS]

PARAMETERS

-a

:
    Specify an RPC bind address and port. Defaults to 0.0.0.0:9091.

-b
    Enable the blocklist.

-c
    Specify a directory for incomplete downloads.

-d
    Specify the default download directory.

-f
    Run in the foreground, do not daemonize.

-g
    Specify the configuration directory. Defaults to ~/.config/transmission-daemon.

-p
    Specify the peer listening port.

-s
    Start all torrents paused (same as --paused).

-t
    Test configuration file and exit.

-v
    Show the version number and exit.

--auth :
    Specify RPC authentication credentials.

--log-debug
    Set log level to 'debug'.

--log-error
    Set log level to 'error'.

--log-info
    Set log level to 'info' (default).

--no-resource-limit
    Do not set a resource limit (e.g., maximum open files).

--pid-file
    Specify the PID file path.

--rpc-bind-address

    Specify the RPC bind address. Overrides -a address.

--rpc-port
    Specify the RPC port. Overrides -a port.

--rpc-url
    Specify the RPC URL path. Defaults to /transmission/rpc.

--rpc-whitelist
    Comma-separated list of IP addresses or ranges for RPC access.

--rpc-whitelist-enabled
    Enable the RPC whitelist.

--watch-dir
    Watch a directory for new .torrent files.

--watch-dir-enabled
    Enable the watch directory feature.

DESCRIPTION

transmission-daemon is the daemon process for the popular Transmission BitTorrent client. It runs silently in the background, without a graphical user interface, making it ideal for servers, network-attached storage (NAS) devices, or headless systems. It efficiently manages torrent downloads and uploads, providing a low-resource footprint while maintaining essential BitTorrent functionalities. Users typically interact with transmission-daemon via its built-in web interface, the transmission-remote command-line tool, or third-party graphical clients that connect to its RPC (Remote Procedure Call) interface. It supports features like peer exchange, DHT, UPnP/NAT-PMP port forwarding, encryption, and blocklists. Its configuration is handled through a settings.json file, allowing for persistent settings and automation. Running as a daemon ensures that torrent activities continue even after the user logs out or closes their terminal session.

CAVEATS

Security Considerations: By default, the RPC interface is often only bound to localhost (127.0.0.1). If configured to listen on all interfaces (0.0.0.0) without RPC authentication (--auth) and/or an RPC whitelist (--rpc-whitelist), it could be exposed to unauthorized access, allowing anyone on the network to control your Transmission instance.

Configuration Persistence: Most settings are stored in settings.json within the configuration directory (often ~/.config/transmission-daemon/ or /var/lib/transmission-daemon/). Manually editing this file while the daemon is running can lead to lost changes or corrupted settings. Always stop the daemon before editing settings.json, or use the RPC interface to change settings.

Resource Usage: While lightweight, running many active torrents or downloading at very high speeds can still consume significant CPU, memory, and disk I/O, especially on low-power devices.

CONFIGURATION FILE LOCATION

The primary configuration file for transmission-daemon is settings.json. By default, it's located in the Transmission configuration directory, which is typically ~/.config/transmission-daemon/ for user-run instances, or /var/lib/transmission-daemon/ when run as a system service. This file stores all daemon settings, including download directories, RPC credentials, port settings, and more.

RPC INTERFACE AND CONTROL

transmission-daemon exposes an RPC (Remote Procedure Call) interface, usually on port 9091. This interface is how various clients communicate with and control the daemon. The official Transmission Web UI connects to this RPC, as does the transmission-remote command-line tool. Third-party applications and scripts can also interact with the daemon via this API.

RUNNING AS A SYSTEM SERVICE

For continuous and reliable operation, it is highly recommended to run transmission-daemon as a system service (e.g., using systemd on Linux). This ensures it starts automatically on boot, runs with appropriate permissions, and can be managed easily with tools like systemctl start transmission-daemon, systemctl stop transmission-daemon, and systemctl enable transmission-daemon.

HISTORY

Transmission was initially released in 2005, designed with a focus on being lightweight, simple, and cross-platform. The transmission-daemon component emerged as a natural extension of this philosophy, allowing the core BitTorrent engine to run as a background service without a graphical interface. This enabled its widespread adoption on servers, NAS devices, and embedded systems, providing a robust and efficient solution for headless torrent management. Its development has consistently aimed for a balance of features, performance, and low resource consumption, making it a preferred choice for many users needing a reliable BitTorrent daemon.

SEE ALSO

transmission-remote(1), transmission-cli(1), transmission-qt(1), transmission-gtk(1), systemctl(1)

Copied to clipboard