[systemd-devel] pid namespaces, systemd and signals on reboot(2)

Michał Zegan webczat_200 at poczta.onet.pl
Sun May 28 19:39:29 UTC 2017



W dniu 28.05.2017 o 20:43, Mike Gilbert pisze:
> On Sat, May 27, 2017 at 2:51 PM, Michał Zegan
> <webczat_200 at poczta.onet.pl> wrote:
>> Hello.
>>
>> I came across the following:
>> The manpage reboot(2) says, that inside of a pid namespace, a reboot
>> call that normally would trigger restart actually triggers sending
>> sighup to the init of a namespace, and sigint is sent in case of
>> halt/poweroff.
>> I have verified that reboot actually triggers sighup. does it mean you
>> cannot "reboot -f" in a pid namespace, because it will actually trigger
>> something like "systemctl daemon-reload"? (confusing behavior)...
>> About poweroff, I used unshare -Upfr and then typed poweroff -f, and the
>> bash started by unshare exited. Bash does not exit on sigint, so not
>> sure what was sent? sigkill?
>> Also, how does systemd handle this case when you tell systemd to power
>> off/reboot? it probably exits instead of calling reboot(2), but does it
>> make it possible to distinguish reboot from power off?
>> Sorry for such an partially offtopic question.
> 
> I think that section of reboot(2) is inaccurate. I don't see any
> trappable signal actually being sent to the init process.
> 
> What actually seems to happen is this:
> 
> - All processes in the PID namespace are terminated by the kernel (SIGKILL?).
> - The exit status on the "init" process is set so that it appears to
> have been killed using SIGHUP or SIGINT. The parent process can use
> this to distinguish between a reboot and a halt request.
> 

Oooh, well, it seems you are probably right.
Tested by setting a trap on bash level (bash is pidns pid1), and sending
it sighup. It didn't kill it, but reboot -f did kill it as though sighup
would happen, but without actually sending sighup (trap not called).
Someone could verify that, and knowing how systemd handles
reboot/poweroff in pidns is still interesting to me.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 525 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20170528/a3a79117/attachment.sig>


More information about the systemd-devel mailing list