Date: Mon, 15 Dec 2003 17:09:00 -0800 (PST) From: Don Lewis <truckman@FreeBSD.org> To: cracauer@cons.org Cc: bland@mail.ru Subject: Re: truss issue Message-ID: <200312160109.hBG190eF068634@gw.catspoiler.org> In-Reply-To: <20031215163401.A68402@cons.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 15 Dec, Martin Cracauer wrote: > Don Lewis wrote on Mon, Dec 15, 2003 at 01:28:50PM -0800: >> If you type "truss foo" at the shell prompt, the shell will fork and >> exec truss, which forks and execs foo. When truss forks, the child >> process is the one that execs foo, and the parent process watches what >> the child process does. My suggestion is to swap the roles of the >> parent and child truss processes. The parent truss process would be the >> one that calls exec(), and the child process would be the one doing the >> monitoring. When the process being traced exits, the shell would >> automagically get the correct exit status. > > Ah, OK. > > That would also have the advantage that the pid that the fork() in the > starting process gets will continue to stay correct for the child it > expects. > > E.g. > truss foo & > pid=$! > dosomethingwith $pid Like "kill -9" > pid will point to the actual process and not foo, so you can safely > insert a truss prefix where you want. I hadn't thought about it, but this is another advantage.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200312160109.hBG190eF068634>