[PATCH 0/2] Send a SIGCHLD to the init's pid namespace parent when reboot
Daniel Lezcano
daniel.lezcano at free.fr
Mon Aug 22 05:28:35 PDT 2011
On 08/19/2011 05:24 PM, Oleg Nesterov wrote:
> On 08/19, Daniel Lezcano wrote:
>> On 08/15/2011 04:47 PM, Oleg Nesterov wrote:
>>> - sys_reboot(cmd) does
>>>
>>> if (!global_namespace) {
>>> task_active_pid_ns(current)->reboot_cmd = cmd;
>>> sigkill_my_init();
>>> }
>> Hi Oleg,
>>
>> what would be your advice to get rid of from_ancestor_ns which prevent
>> the signal to be delivered to the init process ?
> Sure, a plain kill can't work. You can do force_sig_info(), this clears
> SIGNAL_UNKILLABLE.
>
> Hmm. But now I seem to recall we have other reasons to make the new
> sigkill_task() helper... We will see. Anyway, force_ should work afaics.
Thanks Oleg.
I wrote the patch by sending a signal to the init process of the pid
namespace using force_sig_info.
That works fine, thanks for the hint.
I am wondering what is the best way to transmit the reason of the reboot
to the parent of the container's init.
If we pass the reason to the exit_code of the init process, that will be
a bit weird as the process is signaled and did not exited no ?
Furthermore, how to differentiate an application container (eg. a
script) exiting with an error with the same value of a reboot reason ?
Wouldn't make sense to let the user to specify a signal via prctl where
the si_code is filled with the reason ?
Without invoking the prctl, the init process is simply killed by the
kernel, otherwise we send the signal to the container's init.
More information about the Containers
mailing list