#!/bin/sh # # Startup script for hsqldb. # # chkconfig: 345 83 17 # description: hsqldb - A High Performance Java Database Server # Source function library. . /etc/init.d/functions . /usr/lib/java-common/java-functions FindJVM HSQLDB_OWNER=hsqldb TARGET_CLASS=Server HSQLDB_HOME=/var/lib/hsqldb HSQLDB_JAR_PATH=$HSQLDB_HOME/lib/hsqldb.jar AUTH_FILE=${HSQLDB_HOME}/sqltool.rc CFGFILE=/etc/sysconfig/hsqldb LOGFILE=/var/log/hsqldb/hsqldb.log PIDFILE=/var/run/hsqldb.pid LOCKFILE=/var/lock/subsys/hsqldb RETVAL=0 . "$CFGFILE" # Suffix delimiter to $SERVER_ADDL_CLASSPATH, if it is set. [ -n "$SERVER_ADDL_CLASSPATH" ] && SERVER_ADDL_CLASSPATH="${SERVER_ADDL_CLASSPATH}:" # PROPERTY_FILE is a derived value. case "$TARGET_CLASS" in Server) PROPERTY_FILE="$HSQLDB_HOME"/server.properties;; WebServer) PROPERTY_FILE="$HSQLDB_HOME"/webserver.properties;; *) echo 'Unsupported value for $TARGET_CLASS: '"$TARGET_CLASS" 1>&2 exit 2;; esac start() { msg_starting hsqldb if [ -f "$PIDFILE" ]; then if [ -n "$(ps --no-headers p $(cat $PIDFILE))" ]; then echo "hsqldb already running" echo_passed echo -e "\r" return 0 else echo "hsqldb is not running, but pid-file exist. Starting..." rm -f "$PIDFILE" rm -f "$LOCKFILE" fi fi TLS_SWITCHES= [ -n "$TLS_KEYSTORE" ] && TLS_SWITCHES="-Djavax.net.ssl.keyStore=$TLS_KEYSTORE -Djavax.net.ssl.keyStorePassword=$TLS_PASSWORD" /bin/su -s /bin/sh -l "$HSQLDB_OWNER" -c \ "/usr/bin/java $SERVER_JVMARGS $TLS_SWITCHES -classpath $HSQLDB_JAR_PATH org.hsqldb.$TARGET_CLASS >> $LOGFILE 2>&1" & RETVAL=$? PID=$! echo "$PID" > $PIDFILE [ -z "$LOCKFILE" ] || touch "$LOCKFILE" sleep 1 if [ $RETVAL = 0 ]; then /usr/bin/java "-Dsqltoolsprayer.rcfile=$AUTH_FILE" $CLIENT_JVMARGS \ "-Dsqltoolsprayer.propfile=$PROPERTY_FILE" \ "-Dsqltoolsprayer.monfile=$PIDFILE" \ "-Dsqltoolsprayer.maxtime=1000" \ -classpath $HSQLDB_JAR_PATH \ org.hsqldb.util.SqlToolSprayer '' if [ $? = 0 ]; then echo_success echo -e "\r" else echo_failure echo -e "\r" RETVAL=1 fi else echo_failure echo -e "\r" fi return $RETVAL } stop() { msg_stopping hsqldb if [ -f "$PIDFILE" ]; then if [ -n "$(ps --no-headers p $(cat $PIDFILE))" ]; then /usr/bin/java "-Dsqltoolsprayer.rcfile=$AUTH_FILE" $CLIENT_JVMARGS \ "-Dsqltoolsprayer.propfile=$PROPERTY_FILE" \ -classpath $HSQLDB_JAR_PATH \ org.hsqldb.util.SqlToolSprayer 'shutdown ;' \ $SHUTDOWN_URLIDS sleep 2 if [ -n "$(ps --no-headers p $(cat $PIDFILE))" ]; then echo "hsqldb wasn't stoped within 2 second. Force stopping..." kill $(cat $PIDFILE) fi echo_success echo -e "\r" else echo "hsqldb is not running, but pid-file exist" echo_passed echo -e "\r" fi rm -f "$PIDFILE" rm -f "$LOCKFILE" else echo "hsqldb is not running" echo_failure echo -e "\r" fi RETVAL=$? return $RETVAL } status() { if [ -f "$PIDFILE" ]; then if [ -n "$(ps --no-headers p $(cat $PIDFILE))" ]; then echo "hsqldb is running" else echo "hsqldb is not running, but pid-file exists" fi else echo "hsqldb is not running" fi RETVAL=$? return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start ;; condstop) # Stop the servce if it is already running, for example: if [ -e "$LOCKFILE" ]; then stop fi ;; condrestart) # Restart the servce if it is already running, for example: if [ -e "$LOCKFILE" ]; then stop start fi ;; status) status ;; *) echo "Usage: ${0##*/} {start|stop|reload|restart|condstop|condrestart|status}" RETVAL=1 esac exit $RETVAL