diff options
Diffstat (limited to 'net-p2p/btpd/files/initd_btpd')
-rw-r--r-- | net-p2p/btpd/files/initd_btpd | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/net-p2p/btpd/files/initd_btpd b/net-p2p/btpd/files/initd_btpd new file mode 100644 index 000000000000..2d54e9bdb758 --- /dev/null +++ b/net-p2p/btpd/files/initd_btpd @@ -0,0 +1,79 @@ +#!/sbin/runscript +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +BTPDUSERHOME=`getent passwd ${BTPDUSER} | cut -d : -f 6` +BTPDHOME=${BTPDUSERHOME}/.btpd +BTPDSTARTUPLOG=${BTPDHOME}/startup.log + +depend() { + need net +} + +checkconfig() { + if [ -z ${BTPDUSER} ]; then + + eerror "Must edit /etc/conf.d/btpd first." + return 1 + + elif [ -z "`getent passwd ${BTPDUSER}`" ]; then + + eerror "Check /etc/conf.d/btpd's \${BTPDUSER}. '${BTPDUSER}' doesn't exist." + return 1 + fi +} + +start() { + + ebegin "Starting BitTorrent Protocol Daemon" + checkconfig || return 1 + + if pgrep -u ${BTPDUSER} btpd >/dev/null; then + eerror "An instance of btpd is already running" + return 1 + else + su ${BTPDUSER} -c "btpd ${BTPDEXTRARGS}" + + sleep 2 + + if ! pgrep -u ${BTPDUSER} btpd > /dev/null; then + eerror "BitTorrent Protocol Daemon couldn't be started ! Check logfile: ${BTPDSTARTUPLOG}" + return 1 + fi + fi + + eend $? +} + +stop() { + checkconfig || return 1 + + local retries=0 + + ebegin "Stopping BitTorrent Protocol Daemon" + while [[ -n "`pgrep -u ${BTPDUSER} btpd`" && ${retries} -lt 4 ]]; do + if test ${retries} -eq 0; then + su ${BTPDUSER} -c "btcli kill" + else + kill -9 "`pgrep -u ${BTPDUSER} btpd`" + fi + + sleep 1 + let retries=$retries+1 + done + + if [ ${retries} -lt 4 ]; then + return 0 + else + eerror "Unable to stop btpd" + return 1 + fi + + eend $? +} + +restart() { + svc_stop + sleep 3 + svc_start +} |