
Installing with `make install` automatically places the ddclient executable in `/usr/bin/ddclient`. This service file has the wrong path and that causes systemd to be unable to start ddclient.
100 lines
2.5 KiB
Bash
Executable file
100 lines
2.5 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# ddclient This shell script takes care of starting and stopping
|
|
# ddclient.
|
|
#
|
|
# chkconfig: 2345 65 35
|
|
# description: ddclient provides support for updating dynamic DNS services.
|
|
|
|
CONF=/etc/ddclient/ddclient.conf
|
|
program=ddclient
|
|
|
|
[ -f $CONF ] || exit 0
|
|
|
|
system=unknown
|
|
if [ -f /etc/fedora-release ]; then
|
|
system=fedora
|
|
elif [ -f /etc/redhat-release ]; then
|
|
system=redhat
|
|
elif [ -f /etc/debian_version ]; then
|
|
system=debian
|
|
fi
|
|
|
|
PID=''
|
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
|
. /etc/init.d/functions
|
|
PID=`pidofproc $program`
|
|
else
|
|
PID=`ps -aef | grep "$program - sleep" | grep -v grep | awk '{print $2}'`
|
|
fi
|
|
|
|
PATH=/usr/bin:/usr/local/bin:${PATH}
|
|
export PATH
|
|
|
|
# See how we were called.
|
|
case "$1" in
|
|
start)
|
|
# See if daemon=value is specified in the config file.
|
|
# Assumptions:
|
|
# * there are no quoted "#" characters before "daemon="
|
|
# (if there is a "#" it starts a comment)
|
|
# * "daemon=" does not appear in a password or value
|
|
# * if the interval value is 0, it is not quoted
|
|
INTERVAL=$(sed -e '
|
|
s/^\([^#]*[,[:space:]]\)\{0,1\}daemon=\([^,[:space:]]*\).*$/\2/
|
|
t quit
|
|
d
|
|
:quit
|
|
q
|
|
' "$CONF")
|
|
if [ -z "$DELAY" ] || [ "$DELAY" = "0" ]; then
|
|
DELAY="-daemon 300"
|
|
else
|
|
# use the interval specified in the config file
|
|
DELAY=''
|
|
fi
|
|
echo -n "Starting ddclient: "
|
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
|
daemon $program $DELAY
|
|
else
|
|
ddclient $DELAY
|
|
fi
|
|
echo
|
|
;;
|
|
stop)
|
|
# Stop daemon.
|
|
echo -n "Shutting down ddclient: "
|
|
if [ -n "$PID" ]; then
|
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
|
killproc $program
|
|
else
|
|
kill $PID
|
|
fi
|
|
else
|
|
echo "ddclient is not running"
|
|
fi
|
|
echo
|
|
;;
|
|
restart)
|
|
$0 stop
|
|
$0 start
|
|
;;
|
|
status)
|
|
if [ "$system" = "fedora" ] || [ "$system" = "redhat" ]; then
|
|
status $program
|
|
else
|
|
if test "$PID"; then
|
|
for p in $PID; do
|
|
echo "$program (pid $p) is running"
|
|
done
|
|
else
|
|
echo "$program is stopped"
|
|
fi
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Usage: ddclient {start|stop|restart|status}"
|
|
exit 1
|
|
esac
|
|
|
|
exit 0
|