X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-console.git/blobdiff_plain/1ab4aaa5934a4e4126fd91ac2ba29c6476870673..HEAD:/debian/invirt-console-server.init diff --git a/debian/invirt-console-server.init b/debian/invirt-console-server.init index 3b60f73..1d083a3 100755 --- a/debian/invirt-console-server.init +++ b/debian/invirt-console-server.init @@ -18,33 +18,20 @@ 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 @@ -55,10 +42,17 @@ do_start() # 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 + + # 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 } # @@ -71,65 +65,22 @@ 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_config + 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"