From 96117d3b7fc98d99bd11a4bf135cfb85fab87024 Mon Sep 17 00:00:00 2001 From: Paolo Pedroni Date: Wed, 17 Feb 2016 11:24:42 +0100 Subject: [PATCH] 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 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(+) create mode 100644 net-p2p/deluge/files/deluge-web.conf create mode 100644 net-p2p/deluge/files/deluge-web.init create mode 100644 net-p2p/deluge/files/deluged.conf-2 create mode 100644 net-p2p/deluge/files/deluged.init-2 diff --git a/net-p2p/deluge/files/deluge-web.conf b/net-p2p/deluge/files/deluge-web.conf new file mode 100644 index 000000000000..f0aad8ff11e7 --- /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 000000000000..fc540e47346c --- /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 000000000000..5c507c60353c --- /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 000000000000..082bf9dcdc6e --- /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 $? +} -- 2.26.2