Subject: Re: remotely exitting a process
To: Emmanuel Dreyfus <manu@netbsd.org>
From: Frank van der Linden <fvdl@netbsd.org>
List: tech-kern
Date: 12/04/2005 11:21:08
Emmanuel Dreyfus wrote

>That does not fix all the problems: the parent still notices the SIGKILL
>if it called wait4() on the child. Another idea?
>
>  
>
I suspect this is easy to fix.

Processes that die because of a signal go through sigexit(). You can 
either change the process structure to have a p_exitcode, which, if != 
-1, replaces the normal exitsig value passed to exit1() in that 
function. p_exitcode would be set to the exit value passed to 
linux_sys_exit_pgroup().

Or, perhaps cleaner since it avoids changing the process structure, you 
can create an emul_sigexithook, which may be NULL, but if it isn't, it 
will return the value passed to exit1 (i.e. the value set in 
linux_sys_exit_pgroup()).

- Frank