X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/d05a2469e34f8dcacc6fb2d6a989b94bc0c589ad..d2b35954e0ed62510c5cc8e24ab5e1de481d663e:/debian/invirt-remote-server.init diff --git a/debian/invirt-remote-server.init b/debian/invirt-remote-server.init index f9ce229..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,18 +27,31 @@ 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 + + # 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 - modprobe fuse - daemon --running -n $NAME && return 1 - daemon -r -O daemon.info -E daemon.err -n $NAME -U $DAEMON $DAEMON_ARGS || return 2 + + daemon -r -O daemon.info -E daemon.err -n $NAME -- $DAEMON $DAEMON_ARGS || return 2 } +# +# Function that stops the daemon/service +# do_stop() { # Return @@ -45,13 +59,21 @@ do_stop() # 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 - umount "$DAEMON_ARGS" - return "$RETVAL" +} + +do_reload() +{ + gen_files } std_init "$1"