X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/cb6e4d01739d737ad3be000234acf362bd944abb..c2ef438b4260463f5294e5236d9b66bb9f4f5592:/debian/invirt-remote-server.init diff --git a/debian/invirt-remote-server.init b/debian/invirt-remote-server.init index f72f00d..4184917 100755 --- a/debian/invirt-remote-server.init +++ b/debian/invirt-remote-server.init @@ -15,7 +15,8 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin NAME=invirt-remote-server DESC="the Invirt remctl configuration filesystem" DAEMON=/usr/sbin/invirt-remconffs -DAEMON_ARGS="/etc/remctl/remconffs" +MOUNTPOINT="/etc/remctl/remconffs" +DAEMON_ARGS="-f $MOUNTPOINT" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME GEN_FILES=/etc/remctl/acl/web @@ -26,32 +27,53 @@ GEN_FILES=/etc/remctl/acl/web . /lib/init/gen-files.sh . /lib/init/std-init.sh +# +# Function that starts the daemon/service +# do_start() { - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - gen_files - modprobe fuse - daemon --running -n $NAME && return 1 - daemon -r -O daemon.info -E daemon.err -n $NAME -U $DAEMON $DAEMON_ARGS || return 2 + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + + # Try to make sure fuse is setup + [ -e /dev/fuse ] || modprobe fuse || return 2 + + if cat /proc/mounts | grep " $MOUNTPOINT " >/dev/null 2>&1; then + return 1 + fi + + gen_files + + daemon -r -O daemon.info -E daemon.err -n $NAME -- $DAEMON $DAEMON_ARGS || return 2 } +# +# Function that stops the daemon/service +# do_stop() { - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - daemon --stop -n $NAME - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - # Many daemons don't delete their pidfiles when they exit. - rm -f $PIDFILE - umount "$DAEMON_ARGS" - return "$RETVAL" + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + + if ! cat /proc/mounts | grep " $MOUNTPOINT " >/dev/null 2>&1; then + return 1 + fi + + daemon --stop -n $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE +} + +do_reload() +{ + gen_files } std_init "$1"