我正在尝试使用init脚本运行cassandra作为服务,但我不断收到错误“Cassandra 2.0以及之后需要Java 7u25或更高版本。”
在init脚本中,我在cassandra用户下运行cassandra:
#!/bin/bash
# init script for Cassandra.
# chkconfig: 2345 90 10
# description: Cassandra
. /etc/rc.d/init.d/functions
CASS_HOME=/etc/cassandra
CASS_BIN=$CASS_HOME/bin/cassandra
CASS_LOG=/var/log/cassandra/cassandra.out
CASS_USER="cassandra"
CASS_PID=/var/run/cassandra/cassandra.pid
prog=Cassandra
RETVAL=0
start() {
if [ -f $CASS_PID ] && checkpid `cat $CASS_PID`; then
echo "Cassandra is already running."
exit 0
fi
echo -n $"Starting $prog: "
daemon --user $CASS_USER $CASS_BIN -p $CASS_PID >> $CASS_LOG 2>&1
usleep 500000
RETVAL=$?
if [ "$RETVAL" = "0" ]; then
echo_success
else
echo_failure
fi
echo
return $RETVAL
}
cassandra用户肯定在运行8u60:
> sudo runuser -l cassandra -c 'echo $JAVA_HOME'
/usr/java/jdk1.8.0_60
> sudo runuser -l cassandra -c 'java -version'
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
我修改了cassandra-env.sh脚本,打印出错误的用户和java版本,并确认脚本是否看到旧版本的java但是我不确定当它看起来好的时候怎么可能对于cassandra用户。
Cassandra 2.0 and later require Java 7u25 or later.
Found JVM 1.6.0, patch 38, current user cassandra.
任何帮助表示赞赏!
答案 0 :(得分:0)
它实际上并没有像cassandra
用户一样在其uid
下运行。环境不同,并且不包含正确的Java版本。将java版本检查为root
,它将指向Java 6 JRE。