#!/bin/sh # 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. # # Karaf control script # description: Karaf startup script # processname: fuse # pidfile: /opt/fuse/jboss fuse//data/fuse.pid # config: /opt/fuse/jboss fuse/etc/fuse.conf # if [ -r "/opt/fuse/jboss fuse/etc/fuse.conf" ]; then . "/opt/fuse/jboss fuse/etc/fuse.conf" else echo "Error KARAF_SERVICE_CONF not defined" exit -1 fi # Location of JDK if [ -n "$JAVA_HOME" ]; then export JAVA_HOME fi # Setup the JVM if [ -z "$JAVA" ]; then if [ -n "$JAVA_HOME" ]; then JAVA="$JAVA_HOME/bin/java" else JAVA="java" fi fi if [ -z "$STARTUP_WAIT" ]; then STARTUP_WAIT=30 fi if [ -z "$SHUTDOWN_WAIT" ]; then SHUTDOWN_WAIT=30 fi prog=fuse do_start() { echo "Starting $prog: " if [ -f "$KARAF_SERVICE_PIDFILE" ]; then read ppid < "$KARAF_SERVICE_PIDFILE" if [ `ps -p $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then echo "$prog is already running" return 1 else rm -f "$KARAF_SERVICE_PIDFILE" fi fi LOG_PATH=`dirname "$KARAF_SERVICE_LOG"` mkdir -p "$LOG_PATH" cat /dev/null > "$KARAF_SERVICE_LOG" chown $KARAF_SERVICE_USER:$KARAF_SERVICE_GROUP "$KARAF_SERVICE_LOG" PID_PATH=`dirname "$KARAF_SERVICE_PIDFILE"` mkdir -p "$PID_PATH" chown $KARAF_SERVICE_USER:$KARAF_SERVICE_GROUP "$PID_PATH" || true if [ ! -z "$KARAF_SERVICE_USER" ]; then if [ "$KARAF_SERVICE_USER" = "root" ]; then KARAF_EXEC=exec export KARAF_EXEC JAVA_HOME=$JAVA_HOME export JAVA_HOME "$KARAF_SERVICE_PATH/bin/$KARAF_SERVICE_EXECUTABLE" server >> "$KARAF_SERVICE_LOG" 2>&1 & echo $! > "$KARAF_SERVICE_PIDFILE" else su - $KARAF_SERVICE_USER \ -c " { export KARAF_EXEC=exec; export JAVA_HOME=$JAVA_HOME; \"$KARAF_SERVICE_PATH/bin/$KARAF_SERVICE_EXECUTABLE\" server >> \"$KARAF_SERVICE_LOG\" 2>&1 & } ; echo \$! >| \"$KARAF_SERVICE_PIDFILE\" " fi sleep 1 if [ -f "$KARAF_SERVICE_PIDFILE" ]; then chown $KARAF_SERVICE_USER:$KARAF_SERVICE_GROUP "$KARAF_SERVICE_PIDFILE" fi fi RETVAL=$? return $RETVAL } do_stop() { echo $"Stopping $prog: " count=0; if [ -f "$KARAF_SERVICE_PIDFILE" ]; then read kpid < "$KARAF_SERVICE_PIDFILE" kwait=$SHUTDOWN_WAIT if [ "$KARAF_SERVICE_USER" = "root" ]; then JAVA_HOME=$JAVA_HOME export JAVA_HOME "$KARAF_SERVICE_PATH/bin/$KARAF_SERVICE_EXECUTABLE" stop >> "$KARAF_SERVICE_LOG" 2>&1 else su - $KARAF_SERVICE_USER \ -c "export JAVA_HOME=$JAVA_HOME; \"$KARAF_SERVICE_PATH/bin/$KARAF_SERVICE_EXECUTABLE\" stop >> \"$KARAF_SERVICE_LOG\" 2>&1" fi until [ `ps -p $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '0' ] || [ $count -gt $kwait ] do sleep 1 count=`expr $count + 1` done if [ $count -gt $kwait ]; then if [ `ps -p $kpid 2> /dev/null | grep -c $kpid 2> /dev/null` -eq '1' ]; then kill -9 $kpid fi fi fi rm -f "$KARAF_SERVICE_PIDFILE" rm -f $KARAF_LOCKFILE } do_status() { if [ -f "$KARAF_SERVICE_PIDFILE" ]; then read ppid < "$KARAF_SERVICE_PIDFILE" if [ `ps -p $ppid 2> /dev/null | grep -c $ppid 2> /dev/null` -eq '1' ]; then echo "$prog is running (pid $ppid)" return 0 else echo "$prog dead but pid file exists" return 1 fi fi echo "$prog is not running" return 3 } case "$1" in start) do_start ;; stop) do_stop ;; restart) do_stop do_start ;; status) do_status ;; *) ## If no parameters are given, print which are avaiable. echo "Usage: $0 {start|stop|status|restart}" exit 1 ;; esac