packages/net/deluge/files/deluge.init

87 lines
1.4 KiB
Plaintext
Raw Normal View History

#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2011 OpenWrt.org
# Copyright (C) 2010 Alexander Sulfrian
START=50
STOP=50
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
SERVICE_PID_FILE="/var/run/deluged.pid"
error() {
echo "${initscript}:" "$@" 1>&2
}
section_enabled() {
config_get_bool enabled "$1" 'enabled' 0
[ $enabled -gt 0 ]
}
start_instance() {
local s="$1"
section_enabled "$s" || return 1
config_get uid "$s" 'user'
[ -n "$uid" ] || {
error "user is not set"
return 1
}
user_exists $uid || {
error "user '$uid' dos not exist"
return 1
}
config_get gid "$s" 'group'
[ -n "$gid" ] || {
error "group is not set"
return 1
}
group_exists $gid || {
error "group '$gid' dos not exist"
return 1
}
config_get home "$s" 'home'
[ -n "$home" ] || {
home=$(grep "^${user}:" /etc/passwd | cut -d ':' -f 6)
fi
[ -d "$home" ] || {
error "home directory '$home' for user '$uid' dos not exist"
return 1
}
config_get options "$s" 'options'
HOME="$home" \
SERVICE_UID="$uid" \
SERVICE_GID="$gid" \
service_start /usr/bin/python2.6 /usr/bin/deluged --do-not-daemonize $options
}
stop_instance() {
local s="$1"
section_enabled "$s" || return 1
config_get uid "$s" 'user'
config_get gid "$s" 'group'
SERVICE_UID="$uid" \
SERVICE_GID="$gid" \
service_stop /usr/bin/python2.6
}
start()
{
config_load 'deluged'
config_foreach start_instance 'deluged'
}
stop()
{
config_load 'deluged'
config_foreach stop_instance 'deluged'
}