#!/bin/bash # # /etc/init.d/cassandra # # Startup script for Cassandra # # chkconfig: 2345 20 80 # description: Starts and stops Cassandra . /etc/rc.d/init.d/functions export CASSANDRA_HOME=/usr/share/cassandra/ export CASSANDRA_INCLUDE=/usr/share/cassandra/cassandra.in.sh export CASSANDRA_CONF=/etc/cassandra/conf export CASSANDRA_OWNR=cassandra NAME="cassandra" log_file=/var/log/cassandra/cassandra.log pid_file=/var/run/cassandra/cassandra.pid CASSANDRA_PROG=/usr/sbin/cassandra # The first existing directory is used for JAVA_HOME if needed. JVM_SEARCH_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/jre-1.6.* /usr/lib/jvm/java-1.6.*/jre" # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # If JAVA_HOME has not been set, try to determine it. if [ -z "$JAVA_HOME" ]; then # If java is in PATH, use a JAVA_HOME that corresponds to that. This is # both consistent with how the upstream startup script works, and with # the use of alternatives to set a system JVM (as is done on Debian and # Red Hat derivatives). java="`/usr/bin/which java 2>/dev/null`" if [ -n "$java" ]; then java=`readlink --canonicalize "$java"` JAVA_HOME=`dirname "\`dirname \$java\`"` else # No JAVA_HOME set and no java found in PATH; search for a JVM. for jdir in $JVM_SEARCH_DIRS; do if [ -x "$jdir/bin/java" ]; then JAVA_HOME="$jdir" break fi done # if JAVA_HOME is still empty here, punt. fi fi JAVA="$JAVA_HOME/bin/java" export JAVA_HOME JAVA case "$1" in start) # Cassandra startup echo -n "Starting Cassandra: " su $CASSANDRA_OWNR -c "$CASSANDRA_PROG -p $pid_file" > $log_file 2>&1 echo "OK" ;; stop) # Cassandra shutdown echo -n "Shutdown Cassandra: " su $CASSANDRA_OWNR -c "kill `cat $pid_file`" echo "OK" ;; reload|restart) $0 stop $0 start ;; status) status -p $pid_file cassandra ;; *) echo "Usage: `basename $0` start|stop|status|restart|reload" exit 1 esac exit 0