42 lines
1.5 KiB
Bash
42 lines
1.5 KiB
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.
|
|
##
|
|
|
|
#Shared function to wait for a process end. Take the pid and the command name as parameters
|
|
waitForProcessEnd() {
|
|
pidKilled=$1
|
|
commandName=$2
|
|
processedAt=`date +%s`
|
|
while kill -0 $pidKilled > /dev/null 2>&1;
|
|
do
|
|
echo -n "."
|
|
sleep 1;
|
|
# if process persists more than $HBASE_STOP_TIMEOUT (default 1200 sec) no mercy
|
|
if [ $(( `date +%s` - $processedAt )) -gt ${HBASE_STOP_TIMEOUT:-1200} ]; then
|
|
break;
|
|
fi
|
|
done
|
|
# process still there : kill -9
|
|
if kill -0 $pidKilled > /dev/null 2>&1; then
|
|
echo -n force stopping $commandName with kill -9 $pidKilled
|
|
$JAVA_HOME/bin/jstack -l $pidKilled > "$logout" 2>&1
|
|
kill -9 $pidKilled > /dev/null 2>&1
|
|
fi
|
|
# Add a CR after we're done w/ dots.
|
|
echo
|
|
}
|