Hazelcast server as a linux service

眉间皱痕 提交于 2020-01-13 08:44:51

问题


How to run hazelcast server as a linux service in production environments ?

java -server -cp hazelcast.jar com.hazelcast.examples.StartServer

StartServer runs the server with outputs to std terminal, what's the easiest way to run it as a linux service and write logs to a file & how do I specify min and max memory allocation for Hazelcast.

I have to set it up as a service in an EC2 instance and bundle it. When EC2 autoscaling starts an instance, hazelcast server will start and join the cluster.

Thanks


回答1:


To use Hazelcast as a service you just need to write a shell/bash script that starts and stops the java application. Then for controlling your Hazelcast configuration you need to pass in the system property hazelcast.config with the path to the file which contains the hazelcast.xml configuration.

Moreover, if you want to have custom logging you can include the JAR files (for log4j2, for example) and set the system property log4j.configurationFile and the path to the XML/JSON file with the logging configuration. Do not forget to set the property hazelcast.logging.type to the according type in your hazelcast config.

As an example code, here you have a really simple bash script for doing what you want. I have not tested it and it is just something to guide you:

#!/bin/bash

function start {
   cd /opt/hazelcast
   rm -f /opt/hazelcast/hazelcast.pid
   javaCmd = "/my/java/home/bin/java -server -cp hazelcast.jar:apache-log4j-2.0-beta9.jar -Dhazelcast.config=/opt/hazelcast/hazelcast.xml -Dlog4j.configurationFile=/opt/hazelcast/log4j2.xml com.hazelcast.examples.StartServer"
   cmd="nohup $javaCmd >> /opt/hazelcast/service.log 2>&1 & echo \$! >/opt/hazelcast/hazelcast.pid"
   su -c "$cmd"
   return 0; }


function stop {
   pid="$(</opt/hazelcast/hazelcast.pid)"
   kill -s KILL $pid || return 1
   return 0; }


function main {
   RETVAL=0
   case "$1" in
      start)                                               
         start
         ;;
      stop)                                                
         stop
         ;;
      *)
         echo "Usage: $0 {start|stop}"
         exit 1
         ;;
      esac
   exit $RETVAL
}


main $1


来源:https://stackoverflow.com/questions/21019450/hazelcast-server-as-a-linux-service

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!