mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-06-28 01:22:20 +00:00
MAKEALL: fix kill_children for BSD hosts
ps on BSD hosts (like OS X) do not provide the --no-headers switch nor understand the AIX format descriptions. Unfortunately there seems no solution to get the PIDs of children in a platfrom independent manner. Therefore detect the OS and decide upon that which way to go. This patch makes the MAKEALL script cleanly stoppable on bare OS X when using the parallel builds of targets. Additionally this patch removes double call to grep by a single call to sed for GNU style child PID detection. Signed-off-by: Andreas Bießmann <andreas.devel@googlemail.com> Cc: Joe Hershberger <joe.hershberger@ni.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
c08349e77c
commit
6bdd9f8967
1 changed files with 14 additions and 2 deletions
16
MAKEALL
16
MAKEALL
|
@ -802,8 +802,20 @@ build_targets() {
|
||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
|
|
||||||
kill_children() {
|
kill_children() {
|
||||||
local pgid=`ps -p $$ --no-headers -o "%r" | tr -d ' '`
|
local OS=$(uname -s)
|
||||||
local children=`pgrep -g $pgid | grep -v $$ | grep -v $pgid`
|
local children=""
|
||||||
|
case "${OS}" in
|
||||||
|
"Darwin")
|
||||||
|
# Mac OS X is known to have BSD style ps
|
||||||
|
local pgid=$(ps -p $$ -o pgid | sed -e "/PGID/d")
|
||||||
|
children=$(ps -g $pgid -o pid | sed -e "/PID\|$$\|$pgid/d")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# everything else tries the GNU style
|
||||||
|
local pgid=$(ps -p $$ --no-headers -o "%r" | tr -d ' ')
|
||||||
|
children=$(pgrep -g $pgid | sed -e "/$$\|$pgid/d")
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
kill $children 2> /dev/null
|
kill $children 2> /dev/null
|
||||||
wait $children 2> /dev/null
|
wait $children 2> /dev/null
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue