linux - 使用 chkservd 的 cassandra nosql 自动重启服务

标签 linux service centos cassandra background-process

我没有太多的 Linux 经验,所以我可能遗漏了一些明显的东西。

但是...我正在尝试将 Cassandra nosql 放在 CentOS 上的 chkserv.d 中,以便它在中断时自动重新启动。我设法把它放在那里,当它损坏时,它被 chkservd 正确识别。我是这样说的:

root@server [/etc/chkserv.d]# cat cassandra
service[cassandra]=x,x,x,/etc/init.d/cassandra start,cassandra,root

问题是执行“cassandra start”时,在 cassandra.out 日志中我得到:

 /opt/cassandra/cassandra_home/bin/cassandra: line 141: exec: java: not found

cassandra 脚本的第 141 行是:

exec $NUMACTL "$JAVA"$JVM_OPTS $cassandra_parms -cp "$CLASSPATH"$props "$class"<&- &

并且所有环境变量都被正确展开:

java -ea -javaagent:/opt/cassandra/cassandra_home/bin/../lib/jamhreadPriorities -XX:ThreadPriorityPolicy=42 -Xms400M -Xmx400M -XnOutOfMemoryError -Xss180k -XX:+UseParNewGC -XX:+UseConcMarkSweeemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:yFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.net.prefe.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremon.management.jmxremote.authenticate=false -Dlog4j.configuration=es -Dlog4j.defaultInitOverride=true -Dcassandra-pidfile=/var/runpt/cassandra/cassandra_home/bin/../conf:/opt/cassandra/cassandraasses/main:/opt/cassandra/cassandra_home/bin/../build/classes/thassandra_home/bin/../lib/antlr-3.2.jar:/opt/cassandra/cassandra_e-cassandra-1.1.5.jar:/opt/cassandra/cassandra_home/bin/../lib/atutil-1.1.5.jar:/opt/cassandra/cassandra_home/bin/../lib/apache-5.jar:/opt/cassandra/cassandra_home/bin/../lib/avro-1.4.0-fixes.ssandra_home/bin/../lib/avro-1.4.0-sources-fixes.jar:/opt/cassann/../lib/commons-cli-1.1.jar:/opt/cassandra/cassandra_home/bin/..2.jar:/opt/cassandra/cassandra_home/bin/../lib/commons-lang-2.4assandra_home/bin/../lib/compress-lzf-0.8.4.jar:/opt/cassandra/clib/concurrentlinkedhashmap-lru-1.3.jar:/opt/cassandra/cassandraa-r08.jar:/opt/cassandra/cassandra_home/bin/../lib/high-scale-liandra/cassandra_home/bin/../lib/jackson-core-asl-1.9.2.jar:/opt/ome/bin/../lib/jackson-mapper-asl-1.9.2.jar:/opt/cassandra/cassajamm-0.2.5.jar:/opt/cassandra/cassandra_home/bin/../lib/jline-0.ra/cassandra_home/bin/../lib/json-simple-1.1.jar:/opt/cassandra//lib/libthrift-0.7.0.jar:/opt/cassandra/cassandra_home/bin/../lipt/cassandra/cassandra_home/bin/../lib/metrics-core-2.0.3.jar:/oa_home/bin/../lib/servlet-api-2.5-20081211.jar:/opt/cassandra/caib/slf4j-api-1.6.1.jar:/opt/cassandra/cassandra_home/bin/../lib/ar:/opt/cassandra/cassandra_home/bin/../lib/snakeyaml-1.6.jar:/oa_home/bin/../lib/snappy-java-1.0.4.1.jar:/opt/cassandra/cassandaptree-0.1.jar org.apache.cassandra.thrift.CassandraDaemon

当我手动启动该 cassandra 脚本,或使用 etc/init.d/cassandra start 启动它时,一切都已正确启动。

百万美元的问题 - 我错过了什么?

谢谢

最佳答案

只需要设置 JAVA_HOME 环境变量。现在一切都按预期工作。

$CASSANDRA_HOME/bin/cassandra.in.sh 中未注释的行。

关于linux - 使用 chkservd 的 cassandra nosql 自动重启服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12577816/

相关文章:

php - 为什么cronjob默认在public_html之外写?

centos - 如何安装 librsync

linux - 无法从 iptables NAT 后面的本地网络连接到外部 IP

c - OS X 10.10 上 ucontext makecontext 的段错误

c - 获取由于在 c 中执行 cmd 命令而打印的文本

c# - 如何在使用 Host.CreateDefaultBuilder 装载的 Web 主机中配置日志记录

angular - Ionic 3 中提供者的全局实例

android - Android中的服务与线程

c - 检查地址范围是否在进程地址空间中的石蕊测试?

linux - 如何正确格式化此命令: Exec=a=$(service httpd restart 2>&1) && notify-send "$a"