aboutsummaryrefslogtreecommitdiff
path: root/bigtop-packages/src/common/hama/hama-bspmaster.init
diff options
context:
space:
mode:
Diffstat (limited to 'bigtop-packages/src/common/hama/hama-bspmaster.init')
-rw-r--r--bigtop-packages/src/common/hama/hama-bspmaster.init158
1 files changed, 158 insertions, 0 deletions
diff --git a/bigtop-packages/src/common/hama/hama-bspmaster.init b/bigtop-packages/src/common/hama/hama-bspmaster.init
new file mode 100644
index 00000000..b16051d2
--- /dev/null
+++ b/bigtop-packages/src/common/hama/hama-bspmaster.init
@@ -0,0 +1,158 @@
+#!/bin/bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Starts an Apache Hama BSP Master
+#
+# chkconfig: 2345 90 10
+# description: Apache Hama BSP Master
+#
+### BEGIN INIT INFO
+# Provides: hama-bspmaster
+# Required-Start: $remote_fs
+# Should-Start:
+# Required-Stop: $remote_fs
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Apache Hama BSP Master
+### END INIT INFO
+
+. /lib/lsb/init-functions
+
+if [ -f /etc/default/hama ] ; then
+ . /etc/default/hama
+fi
+
+# Autodetect JAVA_HOME if not defined
+if [ -e /usr/libexec/bigtop-detect-javahome ]; then
+ . /usr/libexec/bigtop-detect-javahome
+elif [ -e /usr/lib/bigtop-utils/bigtop-detect-javahome ]; then
+ . /usr/lib/bigtop-utils/bigtop-detect-javahome
+fi
+
+STATUS_RUNNING=0
+STATUS_DEAD=1
+STATUS_DEAD_AND_LOCK=2
+STATUS_NOT_RUNNING=3
+
+ERROR_PROGRAM_NOT_INSTALLED=5
+
+HAMA_RUN_DIR=/var/run/hama
+HAMA_LOCK_DIR="/var/lock/subsys/"
+LOCKFILE="${HAMA_LOCK_DIR}/hama-bspmaster"
+desc="Apache Hama BSP Master"
+
+HAMA_USER=hama
+EXEC_PATH=/usr/bin/hama
+HAMA_PID_FILE="${HAMA_RUN_DIR}/hama-bspmaster.pid"
+HAMA_LOG_FILE="${HAMA_LOG_DIR}/hama-bspmaster.log"
+
+# These directories may be tmpfs and may or may not exist
+# depending on the OS (ex: /var/lock/subsys does not exist on debian/ubuntu)
+for dir in "$HAMA_RUN_DIR" "$HAMA_LOCK_DIR"; do
+ [ -d "${dir}" ] || install -d -m 0755 -o $HAMA_USER -g $HAMA_USER ${dir}
+done
+
+start() {
+ [ -x $exec ] || exit $ERROR_PROGRAM_NOT_INSTALLED
+
+ checkstatus &> /dev/null
+ status=$?
+ if [ "$status" -eq "$STATUS_RUNNING" ]; then
+ exit 0
+ fi
+
+ log_success_msg "Starting $desc: "
+ /bin/su -s /bin/bash -c "/bin/bash -c 'echo \$\$ > ${HAMA_PID_FILE} && exec ${EXEC_PATH} bspmaster >>${HAMA_LOG_FILE} 2>&1' &" $USER
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch $LOCKFILE
+ return $RETVAL
+}
+
+stop() {
+ if [ ! -e $HAMA_PID_FILE ]; then
+ log_failure_msg "Apache Hama BSP Master is not running"
+ exit 0
+ fi
+
+ log_success_msg "Stopping $desc: "
+
+ HAMA_PID=`cat $HAMA_PID_FILE`
+ if [ -n $HAMA_PID ]; then
+ kill -TERM ${HAMA_PID} &>/dev/null
+ sleep 5
+ kill -KILL ${HAMA_PID} &>/dev/null
+ fi
+ rm -f $LOCKFILE $HAMA_PID_FILE
+ return 0
+}
+
+restart() {
+ stop
+ start
+}
+
+checkstatus(){
+ pidofproc -p $HAMA_PID_FILE java > /dev/null
+ status=$?
+
+ case "$status" in
+ $STATUS_RUNNING)
+ log_success_msg "$desc is running"
+ ;;
+ $STATUS_DEAD)
+ log_failure_msg "$desc is dead and pid file exists"
+ ;;
+ $STATUS_DEAD_AND_LOCK)
+ log_failure_msg "$desc is dead and lock file exists"
+ ;;
+ $STATUS_NOT_RUNNING)
+ log_failure_msg "$desc is not running"
+ ;;
+ *)
+ log_failure_msg "$desc status is unknown"
+ ;;
+ esac
+ return $status
+}
+
+condrestart(){
+ [ -e ${LOCKFILE} ] && restart || :
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ checkstatus
+ ;;
+ restart)
+ restart
+ ;;
+ condrestart|try-restart)
+ condrestart
+ ;;
+ *)
+ echo $"Usage: $0 {start|stop|status|restart|try-restart|condrestart}"
+ exit 1
+esac
+
+exit $RETVAL