Re: switch-root, init, SIGHUP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I suspect that your process has a controlling tty based on this comment
> in the killall() function at src/shared/killall.c:
>
>    if (send_sighup) {
>            /* Optionally, also send a SIGHUP signal, but only if the process has a controlling
>             * tty. This is useful to allow handling of shells which ignore SIGTERM but react to
>             * SIGHUP. We do not send this to processes that have no controlling TTY since we
>             * don't want to trigger reloads of daemon processes. Also we make sure to only send
>             * this after SIGTERM so that SIGTERM is always first in the queue. */
>             ...
>    }
>
> Also systemd >= v255 (Fedora 41 has v256) has the directive
> SurviveFinalKillSignal=yes that can be used instead of setting
> argv[0][0] = '@'.

Hi Brian.  Thanks very much for your reply.

When I grepped for sighup in the systemd source, I did find the function killall().

The sighup should not be coming from there because my process has argv[0][0] == ‘@’ and there is a check for that in the killall() for-loop (it is done in the static function ignore_proc()).

Also, my process does not have a controlling tty (it is being invoked using the “init” kernel param).

There is no tty shown when I view its details using ps, and I also don’t see any ttys when I do “ls -l /proc/<pid>/fd”.

Any other suggestions?

Maybe I should open a github issue for this.

-James M


[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux