I have a constantly running server that would be a perfect on which to run torrent downloads. The only catch is that the server is headless -- it has no monitor or keyboard. To overcome this obstacle, I use rTorrent as my torrent client, and GNU Screen so that I can disconnect my terminal session and leave rTorrent running.
rTorrent is a full-featured BitTorrent client that was built to run on a terminal. It uses ncurses as an interface layer and libTorrent under the hood. rTorrent is in the package repositories for most major distributions. If it is not available on your system you can download and install from source.
rTorrent has loads of settings and switches. All of the primary settings can be configured in the .rtorrent.rc file in your home directory; rTorrent looks for it every time it starts. A good place to start learning about the settings is with the example configuration on the project's Web site. Copy and paste the contents into ~/.rtorrent.rc
I recommend you change a few settings before you use rTorrent:
The first line scans for .torrent files in your home directory; if one is found, rTorrent will immediately queue the torrent when it is launched. The second line stops any torrent download if its source file is deleted.schedule = watch_directory,5,5,load_start=~/*.torrent schedule = untied_directory,5,5,stop_untied=
If you do not want to bother with the configuration file, you can pass rTorrent all of these parameters; for more information consult the rTorrent man page.
Once you're set up, open a terminal and run rtorrent. The main screen shows you a summary of all the torrents that are currently queued. It has seven views that you can access by typing 1-7. The views sort and filter the active torrents by name and all the possible states (complete, incomplete, started, stopped, and so forth). From any of these screens you can navigate through the torrents by using the up and down arrow keys. Press Ctrl-s to start a download and Ctrl-d to stop one. If you type Ctrl-d twice, the torrent file, not the downloaded files, will be deleted.
rTorrent also provides extensive information about each download. To view the information, navigate to one of the torrents and press the right arrow key to launch the download view. From this view you can see a complete peer list, file information, tracker list, transfer list, and even the downloaded file chunks. To get back to the main view, press the left arrow key.
To exit rTorrent, type Ctrl-q. When rTorrent exits, it maintains the state of all the torrents. If there is a previously active torrent queued, then when rTorrent launches again it will do a complete hash check of the downloaded content and restore the torrent's state.
rTorrent has many more options and settings. For a complete list of everything available in rTorrent see the man page.
rTorrent really shines when used in conjunction with Screen, which is essentially an interactive shell that attaches itself to a virtual terminal. It allows you to disconnect from a terminal session and leave everything in that session running. Screen is available in the package management system for most major distributions; you can also install it from source.
To start a Screen session, open a terminal and type screen. You will not notice much when Screen is launched; the screen will clear and you will be presented with a prompt. From here you can start any process, such as rTorrent, or run any command available on your system.
To detach the session, type Ctrl-A then Ctrl-D. Ctrl-A tells Screen that the next keystrokes will be a command. Ctrl-D is the detach command. Once you are detached you can exit the session and whatever is running will continue to run -- barring a catastrophe.
When you want to reconnect, you need to get the name of the detached session by using the -ls parameter (screen -ls) to list all of the screen sessions that are running. To reattach to one of them, use the -r parameter and pass in the name:
screen -r 12345.pts-1.machine
If only one screen session is running you can use the -r parameter without the name of the session.
Of course Screen can do much more than what is mentioned here; refer to its man page for more information.
rTorrent and Screen may not be the most flashy BitTorrent setup, but it is one of the most useful and full-featured.
Chad Files, a software developer and writer, has been developing software applications for more than 10 years, and is a contributing developer to many open source projects.
Note: Comments are owned by the poster. We are not responsible for their content.
Headless torrent downloads with rTorrent and Screen
Posted by: Anonymous [ip: 131.116.254.199] on June 12, 2008 10:30 AM#