#! /bin/sh
#
# maxdb-server: startup file for MaxDB vserver
#
#
# Based on the example file written by
# Miquel van Smoorenburg <miquels@cistron.nl> and
# Ian Murdock <imurdock@gnu.ai.mit.edu>.
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin
XSERVER=/usr/lib/maxdb/programs/bin/x_server
VSERVER=/usr/lib/maxdb/programs/pgm/vserver
NAME=x_server
DESC="MaxDB communication server"

test -x $XSERVER || exit 0

set -e

function checkNPTL()
{
    ARCH=`uname -m`
    case "$ARCH" in
        i386|i486|i586|i686)
            DISABLE_NPTL="YES"
            ;;
    esac

    if getconf GNU_LIBPTHREAD_VERSION | grep NPTL > /dev/null 2>&1; then
        HAS_NPTL="YES"
    fi

    if [ "$DISABLE_NPTL" != "YES" -a "$HAS_NPTL" != "YES" ]; then
        echo "MaxDB requires NPTL support but this system appears not to have NPTL support."
        echo "Consider upgrading your kernel to version 2.6 and make sure that"
        echo "LD_ASSUME_KERNEL is not set."
        echo "Exiting."
        exit -1
    fi
    
    if [ "$DISABLE_NPTL" = "YES" -a "$HAS_NPTL" = "YES" ]; then
        export LD_ASSUME_KERNEL=2.4.1
    fi
}

case "$1" in
  start)
        checkNPTL

        echo -n "Starting $DESC: ";  start-stop-daemon --quiet --exec $VSERVER --startas $XSERVER --chuid sdb --group sdba --start 2> /dev/null
        echo "$NAME."
	;;
  stop)
        echo -n "Stopping $DESC: "
        start-stop-daemon --quiet --exec $VSERVER --stop 2> /dev/null || true
	echo "$NAME."
	;;
  reload)
	# echo "Reloading $DESC."
        ;;
  restart|force-reload)
	#
	#	If the "reload" option is implemented, move the "force-reload"
	#	option to the "reload" entry above. If not, "force-reload" is
	#	just the same as "restart".
	#
        checkNPTL

	echo -n "Restarting $DESC: "
        start-stop-daemon --quiet --exec $VSERVER --stop 2> /dev/null
	sleep 1
        start-stop-daemon --quiet --exec $VSERVER --startas $XSERVER --chuid sdb --group sdba --start 2> /dev/null
	echo "$NAME."
	;;
  *)
	N=/etc/init.d/$NAME
	# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
	echo "Usage: $N {start|stop|restart|force-reload}" >&2
	exit 1
	;;
esac

exit 0
