We use kill to cleanup processes from pidfiles.
Windows has a 'taskkill' which does something similar.
We can check if the process with a PID exists with
'tasklist'. Both tasklist and taskkill return 0 for
both success and failure. So, we will have to grep
to see if there is a o/p.
A typical o/p of tasklist is:
$ tasklist | grep ovs
ovsdb-server.exe 3228 RDP-Tcp#0 2 6,132 K
ovs-vswitchd.exe 2080 RDP-Tcp#0 2 5,808 K
$ tasklist //fi "PID eq 3228"
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
ovsdb-server.exe 3228 RDP-Tcp#0 2 6,132 K
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
pwd () {
command pwd -W "$@"
}
+
+ 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; then
+ :
+ else
+ return 1
+ fi
+ done
+ return 0
+ ;;
+ -[1-9]*)
+ shift
+ for i in $*; do
+ taskkill //F //PID $i
+ done
+ ;;
+ [1-9][1-9]*)
+ for i in $*; do
+ taskkill //F //PID $i
+ done
+ ;;
+ esac
+ }
fi
]
m4_divert_pop([PREPARE_TESTS])