From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15564 invoked from network); 19 Jun 1997 06:49:01 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 19 Jun 1997 06:49:01 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id CAA09485; Thu, 19 Jun 1997 02:40:26 -0400 (EDT) Resent-Date: Thu, 19 Jun 1997 02:38:51 -0400 (EDT) From: Zoltan Hidvegi Message-Id: <199706190642.CAA05741@hzoli.home> Subject: Re: kill and pid files In-Reply-To: from Timothy J Luoma at "Jun 18, 97 04:16:13 pm" To: luomat@peak.org Date: Thu, 19 Jun 1997 02:42:34 -0400 (EDT) Cc: rstone@accesscom.com, zsh-users@math.gatech.edu X-Mailer: ELM [version 2.4ME+ PL31 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Resent-Message-ID: <"h8MAz.0.lI2.wFDgp"@euclid> Resent-From: zsh-users@math.gatech.edu X-Mailing-List: archive/latest/907 X-Loop: zsh-users@math.gatech.edu X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu > well, I don't have the file part, but I use this > > pid () { > > for i in $* > do > echo `/bin/ps -auxwww | grep -v grep | > grep -w $i | awk '{print $2}' | tr -s '\012' ' '` > > done > > } Oh, this is a really overcomplicated solution for a simple problem. How about this: pid () { local i for i do ps acx | sed -n "s/ *\([0-9]*\) .* $i *\$/\1/p" done } Under Linux, you can even do that without ps or sed: pid2 () { local i for i in /proc/<->/stat do [[ "$(< $i)" = *\((${(j:|:)~@})\)* ]] && echo $i:h:t done } Zoltan