summaryrefslogtreecommitdiffstats
path: root/znc/init.d/znc
diff options
context:
space:
mode:
Diffstat (limited to 'znc/init.d/znc')
-rwxr-xr-xznc/init.d/znc74
1 files changed, 74 insertions, 0 deletions
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 $?
+}