commit:     96117d3b7fc98d99bd11a4bf135cfb85fab87024
Author:     Paolo Pedroni <paolo.pedroni <AT> iol <DOT> it>
AuthorDate: Wed Feb 17 10:24:42 2016 +0000
Commit:     Kristian Fiskerstrand <k_f <AT> gentoo <DOT> org>
CommitDate: Sun Feb 28 20:38:24 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=96117d3b

net-p2p/deluge: unbundle startup scripts for deluge-web

Different startup scripts for daemon and web server. This fixes
bug #350213 (thanks to Cameron Tacklind <cameron <AT> tacklind.com> for
inspiration, even though implemented slightly differently)

 net-p2p/deluge/files/deluge-web.conf |  6 ++++
 net-p2p/deluge/files/deluge-web.init | 54 ++++++++++++++++++++++++++++++++++++
 net-p2p/deluge/files/deluged.conf-2  |  7 +++++
 net-p2p/deluge/files/deluged.init-2  | 54 ++++++++++++++++++++++++++++++++++++
 4 files changed, 121 insertions(+)

diff --git a/net-p2p/deluge/files/deluge-web.conf 
b/net-p2p/deluge/files/deluge-web.conf
new file mode 100644
index 0000000..f0aad8f
--- /dev/null
+++ b/net-p2p/deluge/files/deluge-web.conf
@@ -0,0 +1,6 @@
+# /etc/conf.d/deluge-web
+# Change this to the user you want to run deluged as.
+# You may specify a group too, after a colon
+DELUGE_WEB_USER=""
+#DELUGE_WEB_HOME=""
+DELUGE_WEB_OPTS=""

diff --git a/net-p2p/deluge/files/deluge-web.init 
b/net-p2p/deluge/files/deluge-web.init
new file mode 100644
index 0000000..fc540e4
--- /dev/null
+++ b/net-p2p/deluge/files/deluge-web.init
@@ -0,0 +1,54 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+depend() {
+       need net
+}
+
+checkconfig() {
+       if [ "${DELUGE_WEB_USER}" = "" ] ; then
+               eerror "Please edit /etc/conf.d/deluge-web"
+               eerror "You have to specify a user to run deluge-web as, as we 
will not run it as root!"
+               eerror "Modify DELUGE_WEB_USER to your needs (you can also add 
a group, after a colon)"
+               return 1
+       fi
+       if ! getent passwd "${DELUGE_WEB_USER%:*}" >/dev/null ; then
+               eerror "Please edit /etc/conf.d/deluge-web"
+               eerror "Your user has to exist!"
+               return 1
+       fi
+       if [ "${DELUGE_WEB_USER%:*}" = "${DELUGE_WEB_USER}" ] ; then
+               return 0
+       else
+               if ! getent group "${DELUGE_WEB_USER#*:}" >/dev/null ; then
+                       eerror "Please edit /etc/conf.d/deluge-web"
+                       eerror "Your group has to exist too!"
+                       return 1
+               fi
+       fi      
+       return 0
+}
+
+start() {
+       checkconfig || return $?
+       if [ "${DELUGE_WEB_HOME}" = "" ] ; then
+               DELUGE_WEB_USER_HOME=$(getent passwd "${DELUGE_WEB_USER%:*}" | 
cut -d ':' -f 6)
+       else
+               DELUGE_WEB_USER_HOME=${DELUGE_WEB_HOME}
+       fi
+       ebegin "Starting Deluge-Web"
+       start-stop-daemon --start --background --pidfile \
+       /run/deluge-web.pid  --make-pidfile \
+       --exec /usr/bin/deluge-web --user "${DELUGE_WEB_USER%:*}" \
+       -e HOME="${DELUGE_WEB_USER_HOME}" -- ${DELUGE_WEB_OPTS}
+       eend $?
+}
+
+stop() {
+       ebegin "Stopping Deluge-Web"
+       start-stop-daemon --stop --user "${DELUGE_WEB_USER%:*}" \
+       --pidfile /run/deluge-web.pid
+       eend $?
+}

diff --git a/net-p2p/deluge/files/deluged.conf-2 
b/net-p2p/deluge/files/deluged.conf-2
new file mode 100644
index 0000000..5c507c6
--- /dev/null
+++ b/net-p2p/deluge/files/deluged.conf-2
@@ -0,0 +1,7 @@
+# /etc/conf.d/deluged
+# Change this to the user you want to run deluged as.
+# You may specify a group too, after a colon
+DELUGED_USER=""
+# DELUGED_UMASK="0002"
+# DELUGED_OPTS="-p 58846"
+

diff --git a/net-p2p/deluge/files/deluged.init-2 
b/net-p2p/deluge/files/deluged.init-2
new file mode 100644
index 0000000..082bf9d
--- /dev/null
+++ b/net-p2p/deluge/files/deluged.init-2
@@ -0,0 +1,54 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+depend() {
+       need net
+}
+
+checkconfig() {
+       if [ "${DELUGED_USER}" = "" ] ; then
+               eerror "Please edit /etc/conf.d/deluged"
+               eerror "You have to specify a user to run deluged as, as we 
will not run it as root!"
+               eerror "Modify DELUGED_USER to your needs (you can also add a 
group, after a colon)"
+               return 1
+       fi
+       if ! getent passwd "${DELUGED_USER%:*}" >/dev/null ; then
+               eerror "Please edit /etc/conf.d/deluged"
+               eerror "Your user has to exist!"
+               return 1
+       fi
+       if [ "${DELUGED_USER%:*}" = "${DELUGED_USER}" ] ; then
+               return 0
+       else
+               if ! getent group "${DELUGED_USER#*:}" >/dev/null ; then
+                       eerror "Please edit /etc/conf.d/deluged"
+                       eerror "Your group has to exist too!"
+                       return 1
+               fi
+       fi      
+       return 0
+}
+
+start() {
+       checkconfig || return $?
+       if [ "${DELUGED_HOME}" = "" ] ; then
+               DELUGED_USER_HOME=$(getent passwd "${DELUGED_USER%:*}" | cut -d 
':' -f 6)
+       else
+               DELUGED_USER_HOME=${DELUGED_HOME}
+       fi
+       ebegin "Starting Deluged"
+       start-stop-daemon --start --user "${DELUGED_USER%:*}" \
+       --name deluged --pidfile /run/deluged.pid --background --make-pidfile \
+       ${DELUGED_UMASK:+--umask ${DELUGED_UMASK}} \
+       --exec /usr/bin/deluged -e HOME="${DELUGED_USER_HOME}" -- 
--do-not-daemonize ${DELUGED_OPTS}
+       eend $?
+}
+
+stop() {
+       ebegin "Stopping Deluged"
+       start-stop-daemon --stop --user "${DELUGED_USER%:*}" \
+       --name deluged --pidfile /run/deluged.pid
+       eend $?
+}

Reply via email to