#! /bin/sh ### BEGIN INIT INFO # Provides: opennhrp # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: RFC 2332 2333 daemon # Description: This file suports one instance of opennhrp ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Next Hop Resolution Protocol" NAME=opennhrp DAEMON=/usr/sbin/$NAME PIDPATH=/var/run PIDFILE=$PIDPATH/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME CTRLPATH=/var/run CTRLPIPE=$CTRLPATH/$NAME.socket HOOK_DIR=/etc/commit/post-hooks.d NHRP_HOOK=$HOOK_DIR/vyatta-nhrp-hook CONFFILE=/etc/opennhrp/opennhrp.conf SCRIPTFILE=/etc/opennhrp/opennhrp-script DAEMON_ARGS=" -d -v -a $CTRLPIPE -c $CONFFILE -s $SCRIPTFILE -p $PIDFILE" # -a /var/run/opennhrp/ctrl -c /etc/opennhrp/opennhrp.conf -s /etc/opennhrp/opennhrp-script -d -p /var/run/opennhrp/pid # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Exclude from systemd SYSTEMCTL_SKIP_REDIRECT=yes # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # # Function that starts the daemon/service # do_start() { mkdir -p $PIDPATH mkdir -p $CTRLPATH start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null RETVAL=$? if [ ! $RETVAL -eq 0 ]; then return $RETVAL; fi start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS return $? } # # Function that stops the daemon/service # do_stop() { start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE rm -f $PIDFILE return $? } # # Function that sends a SIGHUP to the daemon/service # do_reload() { start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE return $? } # # Function that makes preparations for starting opennhrp # do_prepare() { if [ -d $HOOK_DIR ] && [ ! -f $NHRP_HOOK ]; then touch $NHRP_HOOK chmod 755 $NHRP_HOOK cat <>$NHRP_HOOK #!/bin/sh NHRP_UP=/opt/vyatta/sbin/vyatta-update-nhrp.pl if [ -f \$NHRP_UP ]; then sudo \$NHRP_UP --post_commit fi SCRIPT_EOF fi } case "$1" in start) log_daemon_msg "Preparing $DESC" "$NAME" do_prepare RETVAL=$? log_end_msg $RETVAL ;; stop) log_daemon_msg "Stopping $DESC" "$NAME" do_stop RETVAL=$? log_end_msg $RETVAL ;; reload|force-reload) if [ -e $PIDFILE ]; then log_daemon_msg "Reloading $DESC" "$NAME" do_reload RETVAL=$? log_end_msg $RETVAL else log_daemon_msg "Starting $DESC" "$NAME" do_start RETVAL=$? log_end_msg $RETVAL fi ;; restart) log_daemon_msg "Restarting $DESC" "$NAME" do_stop RETVAL=$? if [ ! $RETVAL -eq 0 ]; then exit $RETVAL; fi sleep 1 do_start RETVAL=$? log_end_msg $RETVAL ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2 exit 3 ;; esac #exit with return code of the last command exit $RETVAL :