[OE-core] Problem with blocked signals in daemons started from rpm postinstall scriptlet
Diego Santa Cruz
Diego.SantaCruz at spinetix.com
Sun Feb 10 13:18:54 UTC 2019
> -----Original Message-----
> From: Alexander Kanavin <alex.kanavin at gmail.com>
> Sent: Saturday, February 9, 2019 8:24 PM
> To: Diego Santa Cruz <Diego.SantaCruz at spinetix.com>
> Cc: openembedded-core at lists.openembedded.org
> Subject: Re: [OE-core] Problem with blocked signals in daemons started from
> rpm postinstall scriptlet
> On Sat, 9 Feb 2019 at 19:55, Diego Santa Cruz via Openembedded-core
> <openembedded-core at lists.openembedded.org> wrote:
> > I am having problems with daemons that get started from the rpm
> postinstall scriptlet, via update-rc.d, that they cannot be killed. Investigating I
> discovered that they have most signals blocked. My guess is that rpm blocks
> almost all signals so that scriptlets do not fail, but as the signal mask is
> inherited across fork and exec the daemons end up being blocked. Looking at
> update-rc.d it is a simple shell script which does not reset the signal mask, so
> any daemons started from there inherit the signal mask.
> > Even worse, things like ntp which rely on SIGALRM fail to work properly
> when started from the postinstall scriptlet.
> > Any ideas on how could this be solved, I am considering tweaking update-
> rc.d to ignore the -s option as a workaround, at least it avoids the issue and
> anyhow in my setup I always reboot after installing or updating packages.
> Any other ideas?
> I'd suggest you take this to rpm upstream. Obviously rpm is widely
> used in Fedora, RHEL and other distros, so somehow people can find a
> way around this.
I'll try to, but I this is a non-issue on those distros. They use systemd and in that context the daemons are not started by the rpm post-install, but from systemd, so there is no issue with daemons inheriting the signal mask (nor other process settings); the post-install just requests that systemd starts the daemon.
Diego Santa Cruz, PhD
More information about the Openembedded-core