123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- #!/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: ${KARAF_SERVICE_NAME}
- # pidfile: ${KARAF_SERVICE_PIDFILE}
- # config: ${KARAF_SERVICE_CONF}
- #
- if [ -r "${KARAF_SERVICE_CONF}" ]; then
- . "${KARAF_SERVICE_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=${KARAF_SERVICE_NAME}
- 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" daemon >> "$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\" daemon >> \"$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
|