Change in osmo-ttcn3-hacks[master]: ttcn3-tcpdump*.sh: Fix scripts hanging on sudo prompt
arehbein has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/30310 ) Change subject: ttcn3-tcpdump*.sh: Fix scripts hanging on sudo prompt ...................................................................... ttcn3-tcpdump*.sh: Fix scripts hanging on sudo prompt Related: OS#5736 Change-Id: I05687f9bc0bb87c6f1d5c42ba235dbb90a49aeb6 --- M ttcn3-tcpdump-start.sh M ttcn3-tcpdump-stop.sh 2 files changed, 23 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/30310/1 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 -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/30310 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I05687f9bc0bb87c6f1d5c42ba235dbb90a49aeb6 Gerrit-Change-Number: 30310 Gerrit-PatchSet: 1 Gerrit-Owner: arehbein <arehbein@sysmocom.de> Gerrit-MessageType: newchange
participants (1)
-
arehbein