Skip site navigation (1)Skip section navigation (2)
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>