Subject: Re: remotely exitting a process
To: None <tech-kern@netbsd.org>
From: Christos Zoulas <christos@astron.com>
List: tech-kern
Date: 11/30/2005 02:23:38
In article <20051129221650.GB23265@NetBSD.org>,
Emmanuel Dreyfus  <manu@netbsd.org> wrote:
>On Mon, Nov 28, 2005 at 10:00:58PM +0100, Frank van der Linden wrote:
>> Emmanuel Dreyfus wrote:
>> I'd just set the "sig" argument that is passed by linux_sys_clone to 
>> fork1() to 0, iff CLONE_THREAD is set. That way, when a clone/"thread" 
>> exits (really a process), it will not send the parent a signal.  
>> Glancing at the Linux kernel, it seems like the desired emulated behavior.
>> 
>> So then, the SIGKILL approach will work, if we ignore the case of 
>> processes waiting in the kernel. I bet there are tons of places in the 
>> kernel where the code doesn't expect to exit from a ltsleep() by a 
>> forced exit, so a change in semantics there would require a lot of code 
>> changes.
>
>That does not fix all the problems: the parent still notices the SIGKILL
>if it called wait4() on the child. Another idea?

Maybe setup a trampoline that calls exit(2) and make the process call it
when SIGKILL gets delivered and the trampoline exists?

christos