#!/bin/sh
#
-# glusterfsd Cassandra
+# cassandra Cassandra
#
-# chkconfig: 345 14 89
+# chkconfig: 345 84 25
#
# description: Cassandra database node
#
+# processname: cassandra
# Source function library
. /etc/rc.d/init.d/functions
# Get network config
. /etc/sysconfig/network
-
# Get service config - may override defaults
-# [ -f /etc/sysconfig/cassandra ] && . /etc/sysconfig/cassandra
+[ -f /etc/sysconfig/cassandra ] && . /etc/sysconfig/cassandra
# Check that networking is up.
if is_yes "${NETWORKING}"; then
if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
- msg_network_down cassandra
+ msg_network_down "cassandra"
exit 1
fi
else
exit 0
fi
-test -x /usr/sbin/cassandra || exit 0
-
start() {
# Check if the service is already running?
- if [ ! -f /var/lock/subsys/cassandra ]; then
- msg_starting cassandra
- daemon /usr/sbin/cassandra -p /var/run/cassandra.pid
- RETVAL=$?
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/cassandra
- else
- msg_already_running cassandra
+ if [ -f /var/lock/subsys/cassandra ]; then
+ msg_already_running "cassandra"
+ return
fi
+
+ msg_starting "cassandra"
+ daemon --user cassandra /usr/sbin/cassandra -p /var/run/cassandra/cassandra.pid
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/cassandra
}
stop() {
- if [ -f /var/lock/subsys/cassandra ]; then
- # Stop daemons.
- msg_stopping cassandra
- killproc --pidfile /var/run/cassandra.pid cassandra -TERM
- rm -f /var/lock/subsys/cassandra
+ if [ ! -f /var/lock/subsys/cassandra ]; then
+ msg_not_running "cassandra"
+ return
+ fi
+
+ # Stop daemons.
+ msg_stopping "cassandra"
+ # TODO: Fix it to work it properly with default PLD starting script scheme
+ # I do not know how to make
+ pid=$(cat /var/run/cassandra/cassandra.pid)
+ kill -TERM $pid
+ # 0 - call succeed
+ RETVAL=$?
+ if [ $RETVAL -eq 0 ]; then
+ # Success, giving some time for cassandra to flush.
+ checkpid $pid && sleep 1
+ checkpid $pid && sleep 3
+ checkpid $pid && sleep 5
+ if checkpid $pid; then
+ fail
+ log_failed "cassandra shutdown (timeout after -TERM)"
+ else
+ ok
+ log_success "cassandra shutdown"
+ fi
else
- msg_not_running cassandra
+ fail
+ log_failed "cassandra shutdown (signalling error)"
fi
+ rm -f /var/lock/subsys/cassandra
}
condrestart() {
- if [ -f /var/lock/subsys/cassandra ]; then
- stop
- start
- else
- msg_not_running cassandra
+ if [ ! -f /var/lock/subsys/cassandra ]; then
+ msg_not_running "cassandra"
RETVAL=$1
+ return
fi
+
+ stop
+ start
}
RETVAL=0
status cassandra
;;
*)
- # msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
msg_usage "$0 {start|stop|restart|try-restart|force-reload}"
exit 3
esac