Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Sep 1998 18:38:50 +0200 (CEST)
From:      Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
To:        dnelson@emsphone.com (Dan Nelson)
Cc:        andre.albsmeier@mchp.siemens.de, hamilton@pobox.com, freebsd-questions@FreeBSD.ORG
Subject:   Re: How to get the PID before a program is run? (No joke :-)
Message-ID:  <199809231638.SAA02576@internal>
In-Reply-To: <19980923111119.A2733@emsphone.com> from Dan Nelson at "Sep 23, 98 11:11:19 am"

next in thread | previous in thread | raw e-mail | index | archive | help
> In the last episode (Sep 23), Andre Albsmeier said:
> > someone wrote:
> > > In message <199809230729.JAA12131@internal>, Andre Albsmeier wrote:
> > > } I want to start a program but I need its PID before it is run.
> > > } One way would be to load the program and send a -STOP signal very
> > > } quickly. Then I have got the PID, can do some things and send a
> > > } -CONT signal when finished.
> > > 
> > > It's actually fairly simple, though somewhat off the beaten path. 
> > > Something like:
> > > 
> > > #!/bin/sh
> > > echo "PID is $$"
> > > exec /your/program/here
> > 
> > OK, this replaces my shell script. But I have to do some stuff later
> > when /your/program/here is finished.
> 
> Well, you could call that script from _another_ script :)   You should
> be able to do this in one shell script, like this:
> 
> #! /bin/sh
> (
>    echo $$ > /var/run/prog.pid
>    echo 'program starting with pid $$'
>    exec /bin/prog
> )
> echo 'program finished'
> 
> ,but according to the sh manpage, subshells keep $$ at the original
> shell's pid, so $$ in the above script has the wrong pid.  You'll have
> to split it into two scripts.

Yes, the thing with the two scripts appears to be the only way.

Thanks a lot,

	-Andre

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809231638.SAA02576>