From owner-freebsd-questions Wed Sep 23 09:41:51 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id JAA27014 for freebsd-questions-outgoing; Wed, 23 Sep 1998 09:41:51 -0700 (PDT) (envelope-from owner-freebsd-questions@FreeBSD.ORG) Received: from david.siemens.de (david.siemens.de [192.35.17.14]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id JAA26970 for ; Wed, 23 Sep 1998 09:41:29 -0700 (PDT) (envelope-from andre.albsmeier@mchp.siemens.de) X-Envelope-Sender-Is: andre.albsmeier@mchp.siemens.de (at relayer david.siemens.de) Received: from mail.siemens.de (salomon.siemens.de [139.23.33.13]) by david.siemens.de (8.9.1a/8.9.1) with ESMTP id SAA20641 for ; Wed, 23 Sep 1998 18:41:20 +0200 (MET DST) Received: from curry.mchp.siemens.de (daemon@curry.mchp.siemens.de [146.180.31.23]) by mail.siemens.de (8.9.1a/8.9.1) with ESMTP id SAA00898 for ; Wed, 23 Sep 1998 18:41:20 +0200 (MET DST) Received: (from daemon@localhost) by curry.mchp.siemens.de (8.8.8/8.8.8) id SAA29234 for ; Wed, 23 Sep 1998 18:41:21 +0200 (CEST) From: Andre Albsmeier Message-Id: <199809231641.SAA02585@internal> Subject: Re: How to get the PID before a program is run? (No joke :-) In-Reply-To: <199809231623.JAA05443@pau-amma.whistle.com> from David Wolfskill at "Sep 23, 98 09:23:41 am" To: dhw@whistle.com (David Wolfskill) Date: Wed, 23 Sep 1998 18:41:19 +0200 (CEST) Cc: andre.albsmeier@mchp.siemens.de, freebsd-questions@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL40 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > >From: Andre Albsmeier > >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