2015-11-17 75 views
0

我试图在OpenSuse上运行Cassandra作为服务(Leap 42.1)。在OpenSuse上运行Cassandra作为服务

我已经尝试使用apache-cassandra-2.1.11-bin.tar.gz进行安装,然后从https://gist.github.com/sgomezvillamor/5458309复制/etc/init.d/cassandra。然而,启动脚本是不是专为OpenSuse当中,作为SYSTEM.LOG说:

/etc/init.d/cassandra:行30:守护:命令未找到。

如果会有一个能够正确创建脚本的安装程序,那么问题就不存在了,就像其他一些操作系统一样。搜索一个安装包,我发现http://www.datastax.com/dev/blog/announcing-rpms-cassandra,并试图在rpm.riptano.com上查找rpm,但我无法确定哪一个可以在OpenSuse中工作。

哪些软件包可以用于OpenSuse?或者,我应该如何修改Suse的启动脚本来追踪它?

回答

0

我得到了它与/etc/init.d/cassandra文件的工作:

#!/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=/opt/apache-cassandra-2.1.11 
export CASSANDRA_CONF=$CASSANDRA_HOME/conf 
export CASSANDRA_INCLUDE=$CASSANDRA_HOME/bin/cassandra.in.sh 
#export CASSANDRA_OWNR=cassandra 
export CASSANDRA_OWNR=root 
#NAME="cassandra" 
NAME="root" 
log_file=/srv/cassandra/log/cassandra.log 
pid_file=/var/run/cassandra/cassandra.pid 
lock_file=/var/lock/subsys/$NAME 
CASSANDRA_PROG=/opt/apache-cassandra-2.1.11/bin/cassandra 

# The first existing directory is used for JAVA_HOME if needed. 
JVM_SEARCH_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/jre-1.7.* /usr/lib/jvm/java-1.7.*/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 
     retval=$? 
     [ $retval -eq 0 ] && touch $lock_file 
     echo "OK" 
     ;; 
    stop) 
     # Cassandra shutdown 
     echo -n "Shutdown Cassandra: " 
     su $CASSANDRA_OWNR -c "kill `cat $pid_file`" 
     retval=$? 
     [ $retval -eq 0 ] && rm -f $lock_file 
     for t in `seq 40`; do $0 status > /dev/null 2>&1 && sleep 0.5 || break; done 
     # Adding a sleep here to give jmx time to wind down (CASSANDRA-4483). Not ideal... 
     # Adam Holmberg suggests this, but that would break if the jmx port is changed 
     # for t in `seq 40`; do netstat -tnlp | grep "0.0.0.0:7199" > /dev/null 2>&1 && sleep 0.1 || break; done 
     sleep 5 
     STATUS=`$0 status` 
     if [[ $STATUS == "$NAME is stopped" ]]; then 
      echo "OK" 
     else 
      echo "ERROR: could not stop $NAME: $STATUS" 
      exit 1 
     fi 
     ;; 
    reload|restart) 
     $0 stop 
     $0 start 
     ;; 
    status) 
     status -p $pid_file cassandra 
     exit $? 
     ;; 
    *) 
     echo "Usage: `basename $0` start|stop|status|restart|reload" 
     exit 1 
esac 

exit 0 
相关问题