blob: 573b512c566722f3d58b9c0d72c97f801c472980 [file] [log] [blame]
#!/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.
show_help()
{
echo "Usage: $0 [-p <pidfile>] | [-l] | [-e] | [-h]"
echo " -p <pidfile> Stop the process using the specified pidfile"
echo " -l Stop the process with the name like 'cassandra'"
echo " -e Stop the process with the name equal 'CassandraDaemon'"
echo " -h Show the help message"
}
kill_processes()
{
pids=$(pgrep -u "$(whoami)" -f "${1}")
if [ -n "$pids" ]; then
echo "$pids" | xargs kill -9
fi
}
if [ $# -eq 0 ]; then
show_help
exit 1
fi
case "$1" in
-p)
if [ -z "$2" ]; then
echo "missing pidfile argument after -p"
exit 1
fi
if [ ! -f "$2" ]; then
echo "pidfile $2 does not exist"
exit 1
fi
# if you are using the cassandra start script with -p, this
# is the best way to stop:
kill "$(cat "$2")"
;;
-l)
# you can run something like this, but
# this is a shotgun approach and will kill other processes
# with cassandra in their name or arguments too:
kill_processes cassandra
;;
-e)
kill_processes org.apache.cassandra.service.CassandraDaemon
;;
-h)
show_help
exit 0
;;
*)
show_help
exit 1
;;
esac
exit 0