Date: Wed, 23 Sep 1998 18:41:19 +0200 (CEST) From: Andre Albsmeier <andre.albsmeier@mchp.siemens.de> To: dhw@whistle.com (David Wolfskill) Cc: andre.albsmeier@mchp.siemens.de, freebsd-questions@FreeBSD.ORG Subject: Re: How to get the PID before a program is run? (No joke :-) Message-ID: <199809231641.SAA02585@internal> In-Reply-To: <199809231623.JAA05443@pau-amma.whistle.com> from David Wolfskill at "Sep 23, 98 09:23:41 am"
next in thread | previous in thread | raw e-mail | index | archive | help
> >From: Andre Albsmeier <andre.albsmeier@mchp.siemens.de> > >Date: Wed, 23 Sep 1998 09:29:47 +0200 (CEST) > > >I have a rather curious problem here: > > >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. > > That does not meet the stated requirement of determining the PID > *before* it's run. Indeed, I don't know of a way to accomplish the > stated requirement. Sure, it would have been a hack only. > > >This is rather ugly. On my old Atari ST there was a > >function Pexec() which could be called with a special > >parameter which did all things in order to run a > >program but actually didn't pass control to it. > > >I am sure there must be an esay way to do this on > >FreeBSD but I didn't find any. My preferred way > >of using it would be in a shell script but every > >hint is welcome. > > Well, when you fork(), the parent is told the child process' PID right > away. You could "wrap" the real program in a shell script that > immediately issues a "kill -STOP" before doing an "exec" of the real > program, I suppose. Yes, I think it can be accomplished by two shell scripts as also noted by others. Thanks a lot for your help, -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?199809231641.SAA02585>