Merge pull request #1634 from mstorchak/transmission

transmission: add nice and ionice support, store config persistently
This commit is contained in:
Ted Hess 2015-08-02 15:54:00 -04:00
commit 90baef0f89
3 changed files with 43 additions and 27 deletions

View file

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=transmission
PKG_VERSION:=2.84
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://download-origin.transmissionbt.com/files/ http://mirrors.m0k.org/transmission/files
@ -34,6 +34,7 @@ define Package/transmission-daemon
$(call Package/transmission/template)
DEPENDS:=+libcurl +libopenssl +libpthread +libevent2 +librt
MENU:=1
USERID:=transmission=224:transmission=224
endef
define Package/transmission-cli

View file

@ -3,6 +3,8 @@ config transmission
option config_dir '/tmp/transmission'
#option user 'nobody'
option mem_percentage 50
option nice 10
option ionice_flags '-c 3'
option alt_speed_down 50
option alt_speed_enabled false
option alt_speed_time_begin 540

View file

@ -47,8 +47,10 @@ transmission() {
local USE
local user
local download_dir
local download_dir config_dir
local mem_percentage
local config_overwrite nice ionice_flags
local cmdline
section_enabled "$section" || return 1
@ -56,6 +58,10 @@ transmission() {
config_get user "$cfg" 'user'
config_get download_dir "$cfg" 'download_dir' '/var/etc/transmission'
config_get mem_percentage "$cfg" 'mem_percentage' '50'
config_get config_overwrite "$cfg" config_overwrite 1
config_get nice "$cfg" nice 0
config_get ionice_flags "$cfg" ionice_flags ''
which ionice > /dev/null || ionice_flags=''
local MEM=$(sed -ne 's!^MemTotal:[[:space:]]*\([0-9]*\) kB$!\1!p' /proc/meminfo)
if test "$MEM" -gt 1;then
@ -69,6 +75,8 @@ transmission() {
[ -z "$user" ] || chown -R $user $config_dir
}
[ "$config_overwrite" == 0 ] || {
echo "{" > $config_file
append_params "$cfg" \
@ -97,10 +105,15 @@ transmission() {
echo "\""invalid-key"\": false" >> $config_file
echo "}" >> $config_file
}
cmdline="/usr/bin/transmission-daemon -g $config_dir -f"
[ "$ionice_flags" ] && cmdline="ionice $ionice_flags $cmdline"
procd_open_instance
procd_set_param command /usr/bin/transmission-daemon -g $config_dir -f
procd_set_param command $cmdline
procd_set_param respawn retry=60
procd_set_param user "$user"
procd_set_param nice "$nice"
if test -z "$USE";then
procd_set_param limits core="0 0"
else