From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?QW5kcmVhcyBCaWXDn21hbm4=?= Date: Wed, 23 Jan 2013 12:28:43 +0100 Subject: [U-Boot] [PATCH] MAKEALL: fix kill_children for BSD hosts In-Reply-To: <1358898669-21682-1-git-send-email-andreas.devel@googlemail.com> References: <1358898669-21682-1-git-send-email-andreas.devel@googlemail.com> Message-ID: <50FFC96B.1020102@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 23.01.2013 00:51, Andreas Bie?mann wrote: > ps on BSD hosts (like OS X) do not provide the --no-headers switch nor > understand the AIX format descriptions. Make the call for ps portable and filter > the relevant line from output (including the header) with sed. > Also switch from pgrep to ps to get the list of children and use the same > mechanism as for pgid. > > This patch makes the MAKEALL script cleanly stoppable on bare OS X when using > the parallel builds of targets. > > Signed-off-by: Andreas Bie?mann > Cc: Joe Hershberger > --- > MAKEALL | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/MAKEALL b/MAKEALL > index 5b06c54..d926846 100755 > --- a/MAKEALL > +++ b/MAKEALL > @@ -784,8 +784,8 @@ build_targets() { > #----------------------------------------------------------------------- > > kill_children() { > - local pgid=`ps -p $$ --no-headers -o "%r" | tr -d ' '` > - local children=`pgrep -g $pgid | grep -v $$ | grep -v $pgid` > + local pgid=`ps -p $$ -o pgid | sed -e "/PGID/d"` > + local children=`ps -g $pgid -o pid | sed -e "/PID\|$$\|$pgid/d"` Oumpf, just realized that the 'ps -g' is _not_ portable though. The linux variant selects by session OR group name while the BSD variant uses the process group. I'm looking for a better solution which is portable. Best regards Andreas Bie?mann