ttcn3-tcpdump*.sh: Fix scripts hanging on sudo prompt

Related: OS#5736

Change-Id: I05687f9bc0bb87c6f1d5c42ba235dbb90a49aeb6
diff --git a/ttcn3-tcpdump-start.sh b/ttcn3-tcpdump-start.sh
index 8433c80..8bba72f 100755
--- a/ttcn3-tcpdump-start.sh
+++ b/ttcn3-tcpdump-start.sh
@@ -10,9 +10,19 @@
 
 TESTCASE=$1
 
+
+SUDOSTR=""
+if ! [ "$(id -u)" = "0" ]; then
+	SUDOSTR="sudo -n"
+	# Otherwise, if sudo /usr/bin/kill, sudo /usr/bin/tcpdump cannot be run without a password prompt,
+	# and this script will hang indefinitely
+fi
+
 kill_rm_pidfile() {
-	if [ -e $1 ]; then
-		kill "$(cat "$1")"
+	# NOTE: This requires you to be root or something like
+	# "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file
+	if ! [ -e "$1" ] && [ -s "$1" ]; then
+		$SUDOSTR kill "$(cat "$1")" 2>&1 | grep -v "No such process"
 		rm $1
 	fi
 }
@@ -27,13 +37,7 @@
 kill_rm_pidfile $PIDFILE_NETCAT
 kill_rm_pidfile $PIDFILE_PCAP
 
-if [ "$(id -u)" = "0" ]; then
-	CMD="$TCPDUMP -U"
-else
-# NOTE: This requires you to be root or something like
-# "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file
-	CMD="sudo $TCPDUMP -U"
-fi
+CMD="$SUDOSTR $TCPDUMP -U"
 
 if [ -x "$DUMPCAP" ]; then
     CAP_ERR="1"
diff --git a/ttcn3-tcpdump-stop.sh b/ttcn3-tcpdump-stop.sh
index faf5b2b..6796612 100755
--- a/ttcn3-tcpdump-stop.sh
+++ b/ttcn3-tcpdump-stop.sh
@@ -5,18 +5,20 @@
 TESTCASE=$1
 VERDICT="$2"
 
+SUDOSTR=""
+if ! [ "$(id -u)" = "0" ]; then
+	SUDOSTR="sudo -n"
+	# Otherwise, if sudo /usr/bin/kill, sudo /usr/bin/tcpdump cannot be run without a password prompt,
+	# and this script will hang indefinitely
+fi
+
 kill_rm_pidfile() {
-if [ -e $1 ]; then
-        PSNAME="$(ps -q "$(cat "$1")" -o comm=)"
-	if [ "$PSNAME" != "sudo" ]; then
-		kill "$(cat "$1")"
-	else
 	# NOTE: This requires you to be root or something like
 	# "laforge ALL=NOPASSWD: /usr/sbin/tcpdump, /bin/kill" in your sudoers file
-		sudo kill "$(cat "$1")"
+	if ! [ -e "$1" ] && [ -s "$1" ]; then
+		$SUDOSTR kill "$(cat "$1")" 2>&1 | grep -v "No such process"
+		rm $1
 	fi
-	rm $1
-fi
 }
 
 date