Created
December 30, 2015 02:55
-
-
Save frengky/bf0476da80b8fe85cba7 to your computer and use it in GitHub Desktop.
Setup systemd with the rtorrent service
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is an example resource file for rTorrent. Copy to | |
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to | |
# uncomment the options you wish to enable. | |
# Maximum and minimum number of peers to connect to per torrent. | |
min_peers = 1 | |
max_peers = 300 | |
# Same as above but for seeding completed torrents (-1 = same as downloading) | |
min_peers_seed = 1 | |
max_peers_seed = 50 | |
# Maximum number of uploads single torrent may use | |
max_uploads = 1 | |
# Maximum number of simultaneous downloads | |
max_downloads_global = 1 | |
# Maximum number of simultaneous uploads | |
max_uploads_global = 1 | |
# Global upload and download rate in KiB. "0" for unlimited. | |
download_rate = 0 | |
upload_rate = 10 | |
# Default directory to save the downloaded torrents. | |
directory = /home/rt/downloads | |
# Default session directory. Make sure you don't run multiple instance | |
# of rtorrent using the same session directory. Perhaps using a | |
# relative path? | |
session = /home/rt/sessions | |
# Watch a directory for new torrents, and stop those that have been | |
# deleted. | |
schedule = watch_directory,5,5,load_start=/home/rt/torrent-files/*.torrent | |
#schedule = tied_directory,6,5,start_tied= | |
schedule = untied_directory,5,5,stop_untied= | |
# Close torrents when diskspace is low. | |
schedule = low_diskspace,5,60,close_low_diskspace=2000M | |
# Periodically save session data | |
schedule = session_save,240,300,session_save= | |
# Enable the default ratio group. | |
ratio.enable= | |
# Change the limits, the defaults should be sufficient. | |
# Upload to a minimum ratio of 4.0 | |
ratio.min.set=400 | |
# Upload to a maximum ratio of 20.0 | |
ratio.max.set=2000 | |
# Upload a minimum of 250 MB | |
ratio.upload.set=250M | |
# When seeding ratio is reached close the torrent | |
system.method.set = group.seeding.ratio.command, d.close= | |
# Move files to ./unsorted when download completes | |
# system.method.set_key = event.download.finished,move_complete,"execute=mv,-n,$d.get_base_path=,/home/rt/unsorted/;d.set_directory=/home/rt/unsorted/" | |
system.method.set_key = event.download.finished,move_complete,"d.set_directory=/home/rt/unsorted/;execute=mv,-n,$d.get_base_path=,/home/rt/unsorted/" | |
# Port range to use for listening. | |
port_range = 33101-33199 | |
# Start opening ports at a random position within the port range. | |
port_random = yes | |
# Encryption options, set to none (default) or any combination of the following: | |
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext | |
# | |
# The example value allows incoming encrypted connections, starts unencrypted | |
# outgoing connections but retries with encryption if they fail, preferring | |
# plaintext to RC4 encryption after the encrypted handshake | |
# | |
encryption = allow_incoming,try_outgoing,enable_retry,prefer_plaintext | |
# Sort the main view by ratio | |
view.sort_current = main,greater=d.get_ratio= | |
view.sort_new = main,less=d.get_ratio= | |
view.sort = main | |
# Sort the seeding view by the upload rate and only show torrents with peers | |
view.sort_current = seeding,greater=d.get_up_rate= | |
view.filter = seeding,"and=d.get_complete=,d.get_peers_connected=" | |
view.sort_new = seeding,less=d.get_up_rate= | |
view.sort = seeding | |
# Sort the leeching view by name | |
view.sort_current = leeching,greater=d.get_name= | |
view.sort_new = leeching,greater=d.get_name= | |
view.sort = leeching | |
# Filter the active view by connected peers | |
view.sort_current = active,less=d.get_name= | |
view.sort_new = leeching,less=d.get_name= | |
view.filter = active,d.get_peers_connected= | |
view.sort = active | |
schedule = sort_main,11,5,view.sort=main | |
schedule = sort_seeding,12,5,view.sort=seeding | |
schedule = sort_leeching,13,5,view.sort=leeching | |
schedule = sort_active,14,5,view.sort=active | |
# Enable DHT support for trackerless torrents or when all trackers are down. | |
# May be set to "disable" (completely disable DHT), "off" (do not start DHT), | |
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately). | |
# The default is "off". For DHT to work, a session directory must be defined. | |
# | |
#dht = auto | |
# UDP port to use for DHT. | |
# | |
#dht_port = 6881 | |
# Enable peer exchange (for torrents not marked private) | |
# | |
#peer_exchange = yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[Unit] | |
Description=rTorrent Service | |
After=network.target | |
[Service] | |
Type=forking | |
KillMode=none | |
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent /usr/bin/rtorrent | |
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent | |
WorkingDirectory=/home/rt | |
User=rt | |
Group=rt | |
[Install] | |
WantedBy=multi-user.target |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
In the event that more than one instance of rtorrent is running, the above line
ExecStop=/usr/bin/killall -w -s 2 /usr/bin/rtorrent
will kill ALL instances. This is not optimal. To individually stop each rtorrent instance I suggest using the following instead....
ExecStop=/usr/bin/pkill -e -n -f -x 'FULL_PROCESS_STRING'
Substitute 'FULL_PROCESS_STRING' with the full command used when rtorrent is launched.
For Example:
ExecStop=/usr/bin/pkill -e -n -f -x '/usr/bin/rtorrent -n -o import=/home/seedbox/.rtorrent-tv.rc'
This means the ExecStart line would read:
ExecStart=/usr/bin/screen -d -m -fa -S rtorrent-tv /usr/bin/rtorrent -n -o import=/home/seedbox/.rtorrent-tv.rc
Note:
The import= is used to specify an rtorrent configuration file to load instead of the default. This is how multiple instances can be run in parallel. If you only want 1 instance, it does not matter which you use.