On Wed, Jun 24, 2015 at 07:49:08AM -0700, Gurucharan Shetty wrote:
> You can look at "commit 5e65e080ad4d57e" for more information on the
> exact problem with taskkill.
>
> One option is to check for tskill and if it does not exist, use taskkill.
Here's a concept for that, it's probably buggy because I don't have a
handy Windows system for testing. (The minimal change would be to just
add the new bit at the beginning but I couldn't resist "improving" the
rest of the code.)
diff --git a/tests/ovs-macros.at b/tests/ovs-macros.at
index c583c3d..7427de0 100644
--- a/tests/ovs-macros.at
+++ b/tests/ovs-macros.at
@@ -37,37 +37,31 @@ if test "$IS_WIN32" = "yes"; then
command diff --strip-trailing-cr "$@"
}
+ # tskill is more effective than taskkill but it isn't always installed.
+ if (tskill //?) >/dev/null 2>&1; then :; else
+ tskill () { taskkill //F //PID $1 >/dev/null; }
+ fi
+
kill () {
- case "$1" in
- -0)
- shift
- for i in $*; do
- # tasklist will always have return code 0.
- # If pid does exist, there will be a line with the pid.
- if tasklist //fi "PID eq $i" | grep $i >/dev/null; then
- :
- else
- return 1
- fi
- done
- return 0
- ;;
- -[1-9]*)
- shift
- for i in $*; do
- if tasklist //fi "PID eq $i" | grep $i >/dev/null; then
- tskill $i
- fi
- done
- ;;
+ signal=
+ retval=0
+ for arg; do
+ case $arg in
+ -*) signal=$arg ;;
[1-9][0-9]*)
- for i in $*; do
- if tasklist //fi "PID eq $i" | grep $i >/dev/null; then
- tskill $i
+ # tasklist always returns 0.
+ # If pid does exist, there will be a line with the pid.
+ if tasklist //fi "PID eq $arg" | grep $arg >/dev/null; then
+ if test "X$signal" != "X-0"; then
+ tskill $arg
fi
- done
+ else
+ retval=1
+ fi
;;
- esac
+ esac
+ done
+ return $retval
}
fi
]
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev