summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-dns/ddclient/files/ddclient.initd')
-rw-r--r--net-dns/ddclient/files/ddclient.initd52
1 files changed, 52 insertions, 0 deletions
diff --git a/net-dns/ddclient/files/ddclient.initd b/net-dns/ddclient/files/ddclient.initd
new file mode 100644
index 000000000000..b0ad57acb7a4
--- /dev/null
+++ b/net-dns/ddclient/files/ddclient.initd
@@ -0,0 +1,52 @@
+#!/sbin/runscript
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+# Default location if not specified in /etc/conf.d/ddclient
+PIDFILE=${PIDFILE:-/var/run/ddclient/ddclient.pid}
+
+depend() {
+ before cron
+ need net
+ use dns logger
+}
+
+checkconfig() {
+ local conf="/etc/ddclient/ddclient.conf"
+
+ if [ -e "${conf}" ] ; then
+ if [ -n "$(find /etc/ddclient -maxdepth 1 -name ddclient.conf -perm +0004)" ] ; then
+ eerror "${conf} must not be world-readable. Run e.g.:"
+ eerror " chmod 640 ${conf}"
+ eerror " chown root:ddclient ${conf}"
+ return 1
+ fi
+ else
+ eerror "/etc/ddclient/ddclient.conf is needed to run ddclient"
+ eerror "There is a sample file in /etc/ddclient/"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon \
+ --start \
+ --chuid ddclient \
+ --exec /usr/sbin/ddclient \
+ --name ddclient \
+ --pidfile "${PIDFILE}" \
+ -- -pid="${PIDFILE}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon \
+ --stop \
+ --signal USR1 \
+ --pidfile "${PIDFILE}"
+ eend $?
+}