#!/bin/bash PIDFILE="" PIDVAL="" pidfile() { DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" PIDFILE="$DIR/logs/pid" if [ ! -f $PIDFILE ]; then PIDFILE="" fi } pidval() { pidfile if [ ! -z $PIDFILE ]; then PIDVAL=`pgrep -F "$PIDFILE"` else PIDVAL="" fi } pidval if [ ! -z "$PIDVAL" ]; then kill -SIGTERM "$PIDVAL" COUNTER=500 while [ $COUNTER -gt 0 ]; do pidval if [ -z "$PIDVAL" ]; then COUNTER=0 else sleep 0.1 ((--COUNTER)) fi done if [ ! -z $PIDVAL ]; then kill -SIGKILL "$PIDVAL" sleep 1 fi fi pidfile if [ ! -z "$PIDFILE" ]; then rm "$PIDFILE" fi