X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-console.git/blobdiff_plain/e73df4f67a075bd8f2fbbf70786200ee548bad56..HEAD:/debian/invirt-console-server.init diff --git a/debian/invirt-console-server.init b/debian/invirt-console-server.init index 1ed7309..1d083a3 100755 --- a/debian/invirt-console-server.init +++ b/debian/invirt-console-server.init @@ -18,47 +18,41 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="the Invirt console server" NAME=invirt-console-server DAEMON=/usr/bin/invirt-consolefs -DAEMON_ARGS="/consolefs" +MOUNTPOINT="/consolefs" +DAEMON_ARGS="-f $MOUNTPOINT" PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME +GEN_FILES=(/etc/conserver/invirt-hosts.cf + /etc/remctl/acl/invirt-console-server + /etc/issue.net.no_tkt + /etc/nss-pgsql.conf) # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 -# Read configuration variable file if it is present -[ -r /etc/default/$NAME ] && . /etc/default/$NAME - -# Load the VERBOSE setting and other rcS variables -. /lib/init/vars.sh - -# Define LSB log_* functions. -# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. -. /lib/lsb/init-functions - -gen_config() -{ - for i in /etc/conserver/invirt-hosts.cf \ - /etc/remctl/acl/invirt-console-server \ - /etc/issue.net.no_tkt \ - /etc/nss-pgsql.conf \ - ; do - mako-render $i.mako > $i - done -} +. /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 - modprobe fuse - gen_config - 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 } # @@ -66,70 +60,27 @@ do_start() # 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_config - invoke-rc.d conserver-server reload + gen_files + invoke-rc.d conserver-server reload } -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - reload|force-reload) - log_daemon_msg "Reloading $DESC" "$NAME" - do_reload - log_end_msg $? - ;; - restart) - log_daemon_msg "Restarting $DESC" "$NAME" - do_stop - case "$?" in - 0|1) - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 - exit 3 - ;; -esac - -: +std_init "$1"