To use Hazelcast as a service, you just need to write a shell / bash script that starts and stops the java application. Then, to manage your Hazelcast configuration, you need to pass the path to the file that contains the hazelcast.xml configuration to the hazelcast.config system property.
In addition, if you want to have your own logging, you can include JAR files (for example, for log4j2) and set the system property log4j.configurationFile and the path to the XML / JSON file with the logging configuration. Remember to set the hazelcast.logging.type property hazelcast.logging.type appropriate type in your hazel configuration.
As an example code, here you have a really simple bash script to execute what you want. I have not tested it, and this is just a guide for 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
source share