diff options
Diffstat (limited to 'net-dns/ddclient/files/ddclient.initd')
-rw-r--r-- | net-dns/ddclient/files/ddclient.initd | 52 |
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 $? +} |