]> arthur.barton.de Git - netdata.git/commitdiff
prevent pthreads crash due to killall
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Mon, 8 Feb 2016 22:49:31 +0000 (00:49 +0200)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Mon, 8 Feb 2016 22:49:31 +0000 (00:49 +0200)
netdata-installer.sh

index e9d3f55a2451b444e0388e1537dc8bca3be4ada3..7f21a137af1a072feaf13efbe5bc90b260fc5835 100755 (executable)
@@ -294,6 +294,13 @@ fi
 # -----------------------------------------------------------------------------
 # stop a running netdata
 
+isnetdata() {
+       [ -z "$1" -o ! -f "/proc/$1/stat" ] && return 1
+       [ "$(cat "/proc/$1/stat" | cut -d '(' -f 2 | cut -d ')' -f 1)" = "netdata" ] && return 0
+       return 1
+}
+
+
 printf >&2 "Stopping a (possibly) running netdata..."
 ret=0
 count=0
@@ -306,8 +313,18 @@ do
        fi
 
        count=$((count + 1))
-       run killall netdata 2>/dev/null
-       ret=$?
+
+       pid=$(cat /var/run/netdata/netdata.pid 2>/dev/null)
+       isnetdata $pid || pid=
+       if [ ! -z "${pid}" ]
+               then
+               run kill $pid 2>/dev/null
+               ret=$?
+       else
+               run killall netdata 2>/dev/null
+               ret=$?
+       fi
+
        test $ret -eq 0 && printf >&2 "." && sleep 2
 done
 echo >&2