From 6793f3f5743c4a1b46864c92b3559a52eae1f8a9 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Fri, 17 Dec 2010 14:16:59 +0100 Subject: znc: added init.d script and conf.d file --- znc/conf.d/znc | 13 +++++++++++ znc/init.d/znc | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+) create mode 100644 znc/conf.d/znc create mode 100755 znc/init.d/znc diff --git a/znc/conf.d/znc b/znc/conf.d/znc new file mode 100644 index 0000000..bc321a5 --- /dev/null +++ b/znc/conf.d/znc @@ -0,0 +1,13 @@ +# conf.d file for ZNC +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: $ + +# znc binary to start +#ZNC_DAEMON="/usr/bin/znc" + +# start the daemon as other user +#ZNC_USER="nobody" + +# datadir for znc (you can supply multiple dirs seperated with spaces) +#ZNC_DATADIR="" diff --git a/znc/init.d/znc b/znc/init.d/znc new file mode 100755 index 0000000..14b30cd --- /dev/null +++ b/znc/init.d/znc @@ -0,0 +1,74 @@ +#!/sbin/runscript +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License, v2 or later +# $Header: $ + +ZNC_USER=${ZNC_USER:-"nobody"} +ZNC_DAEMON=${ZNC_DAEMON:-"/usr/bin/znc"} + +depend() { + need net oidentd +} + +checkconfig() { + if [ -z "${ZNC_DATADIR}" ]; then + eerror "Please set at least one datadir for ZNC!" + return 1 + fi + + mkdir -p /var/run/znc/ + if [ ! -d /var/run/znc ]; then + eerror "Unable to create /var/run/znc!" + return 1 + fi + + return 0 +} + +start() { + checkconfig || return 1 + ebegin "Starting ZNC" + eindent + + for dir in "${ZNC_DATADIR}"; do + if [ -d "${dir}" ]; then + ebegin "${dir}" + + pidfile=$(mktemp --tmpdir=/var/run/znc) + start-stop-daemon --start --quiet \ + --chuid ${ZNC_USER} \ + --exec ${ZNC_DAEMON} \ + --pidfile ${pidfile} \ + --make-pidfile --background \ + --chdir ${dir} -- -d ${dir} -f + + eend $? + fi + done + + eoutdent + eend $? +} + +stop() { + checkconfig || return 1 + ebegin "Stopping ZNC" + eindent + + for pidfile in /var/run/znc/* ; do + pid=$(< ${pidfile}) + + if [ -L /proc/${pid}/cwd ]; then + ebegin $(readlink /proc/${pid}/cwd) + + start-stop-daemon --stop --user ${ZNC_USER} \ + --exec ${ZNC_DAEMON} \ + --pidfile ${pidfile} + + eend $? + fi + done + + eoutdent + eend $? +} -- cgit v1.2.3