From owner-freebsd-current@FreeBSD.ORG Mon Dec 15 17:09:17 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A7AB716A4CE; Mon, 15 Dec 2003 17:09:17 -0800 (PST) Received: from gw.catspoiler.org (217-ip-163.nccn.net [209.79.217.163]) by mx1.FreeBSD.org (Postfix) with ESMTP id AC8B243D53; Mon, 15 Dec 2003 17:09:14 -0800 (PST) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.12.9p2/8.12.9) with ESMTP id hBG190eF068634; Mon, 15 Dec 2003 17:09:04 -0800 (PST) (envelope-from truckman@FreeBSD.org) Message-Id: <200312160109.hBG190eF068634@gw.catspoiler.org> Date: Mon, 15 Dec 2003 17:09:00 -0800 (PST) From: Don Lewis To: cracauer@cons.org In-Reply-To: <20031215163401.A68402@cons.org> MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii cc: cracauer@FreeBSD.org cc: current@FreeBSD.org cc: bland@mail.ru Subject: Re: truss issue X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Dec 2003 01:09:17 -0000 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.