X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-console.git/blobdiff_plain/b78f64c598c8db7c0106f25a3bd2ad83e7d4ce45..2995d8728b6a6f74ace741db996cc7699b3c4801:/debian/sipb-xen-console.init?ds=sidebyside diff --git a/debian/sipb-xen-console.init b/debian/sipb-xen-console.init index 14ed7e8..3986a84 100755 --- a/debian/sipb-xen-console.init +++ b/debian/sipb-xen-console.init @@ -1,4 +1,4 @@ -#! /bin/sh +#!/bin/bash ### BEGIN INIT INFO # Provides: sipb-xen-console # Required-Start: $local_fs $remote_fs @@ -15,7 +15,7 @@ # PATH should only include /usr/* if it runs after the mountnfs.sh script PATH=/sbin:/usr/sbin:/bin:/usr/bin -DESC="The sipb-xen console server homedir filesystem" +DESC="The sipb-xen console server" NAME=sipb-xen-console DAEMON=/usr/bin/sipb-xen-consolefs DAEMON_ARGS="/consolefs" @@ -35,6 +35,31 @@ SCRIPTNAME=/etc/init.d/$NAME # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions +gen_config() +{ + { + for i in $(invirt-getconf --ls hosts); do + local hostname=$(invirt-getconf hosts.$i.hostname) + echo "#include /etc/conserver/conf.d/$hostname" + done + } > /etc/conserver/invirt-hosts.cf + local realm=$(invirt-getconf authn.0.realm) + { + for i in $(invirt-getconf --ls hosts); do + local hostname=$(invirt-getconf hosts.$i.hostname) + echo "host/$hostname@$realm" + done + } > /etc/remctl/acl/invirt-console + + mako-render /etc/nss-pgsql.conf.mako > /etc/nss-pgsql.conf + + fmt > /etc/issue.net.no_tkt << EOF +You must login to the $(invirt-getconf console.hostname) console server using +Kerberos tickets, but your ssh client did not pass a valid ticket to the +console server. +EOF +} + # # Function that starts the daemon/service # @@ -44,6 +69,8 @@ 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 } @@ -63,9 +90,16 @@ do_stop() [ "$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 + /etc/init.d/conserver-server reload +} + case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" @@ -83,20 +117,12 @@ case "$1" in 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; - #reload|force-reload) - # - # If do_reload() is not implemented then leave this commented out - # and leave 'force-reload' as an alias for 'restart'. - # - #log_daemon_msg "Reloading $DESC" "$NAME" - #do_reload - #log_end_msg $? - #;; - restart|force-reload) - # - # If the "reload" option is implemented then remove the - # 'force-reload' alias - # + 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 @@ -115,8 +141,7 @@ case "$1" in esac ;; *) - #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 - echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 + echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 exit 3 ;; esac