mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
65 lines
1.3 KiB
Bash
65 lines
1.3 KiB
Bash
#!/bin/bash
|
|
|
|
cygwin=false;
|
|
linux=false;
|
|
case "`uname`" in
|
|
CYGWIN*)
|
|
cygwin=true
|
|
;;
|
|
Linux*)
|
|
linux=true
|
|
;;
|
|
esac
|
|
|
|
get_pid() {
|
|
STR=$1
|
|
PID=$2
|
|
if $cygwin; then
|
|
JAVA_CMD="$JAVA_HOME\bin\java"
|
|
JAVA_CMD=`cygpath --path --unix $JAVA_CMD`
|
|
JAVA_PID=`ps |grep $JAVA_CMD |awk '{print $1}'`
|
|
else
|
|
if $linux; then
|
|
if [ ! -z "$PID" ]; then
|
|
JAVA_PID=`ps -C java -f --width 1000|grep "$STR"|grep "$PID"|grep -v grep|awk '{print $2}'`
|
|
else
|
|
JAVA_PID=`ps -C java -f --width 1000|grep "$STR"|grep -v grep|awk '{print $2}'`
|
|
fi
|
|
else
|
|
if [ ! -z "$PID" ]; then
|
|
JAVA_PID=`ps aux |grep "$STR"|grep "$PID"|grep -v grep|awk '{print $2}'`
|
|
else
|
|
JAVA_PID=`ps aux |grep "$STR"|grep -v grep|awk '{print $2}'`
|
|
fi
|
|
fi
|
|
fi
|
|
echo $JAVA_PID;
|
|
}
|
|
|
|
base=`dirname $0`/..
|
|
pidfile=$base/bin/adapter.pid
|
|
if [ ! -f "$pidfile" ];then
|
|
echo "canal-adapter is not running. exists"
|
|
exit
|
|
fi
|
|
|
|
pid=`cat $pidfile`
|
|
if [ "$pid" == "" ] ; then
|
|
pid=`get_pid "appName=canal-adapter"`
|
|
fi
|
|
|
|
echo -e "`hostname`: stopping canal $pid ... "
|
|
kill $pid
|
|
|
|
LOOPS=0
|
|
while (true);
|
|
do
|
|
gpid=`get_pid "appName=canal-adapter" "$pid"`
|
|
if [ "$gpid" == "" ] ; then
|
|
echo "Oook! cost:$LOOPS"
|
|
`rm $pidfile`
|
|
break;
|
|
fi
|
|
let LOOPS=LOOPS+1
|
|
sleep 1
|
|
done |