Re: For review: pidfd_send_signal(2) manual page
flat view
From: Michael Kerrisk (man-pages) <hidden>
Date: 2019-09-24 19:42:46
Also in:
linux-man, lkml
On 9/23/19 1:31 PM, Daniel Colascione wrote:
On Mon, Sep 23, 2019 at 2:12 AM Michael Kerrisk (man-pages) [off-list ref] wrote:quoted
The pidfd_send_signal() system call allows the avoidance of race conditions that occur when using traditional interfaces (such as kill(2)) to signal a process. The problem is that the traditional interfaces specify the target process via a process ID (PID), with the result that the sender may accidentally send a signal to the wrong process if the originally intended target process has termi‐ nated and its PID has been recycled for another process. By con‐ trast, a PID file descriptor is a stable reference to a specific process; if that process terminates, then the file descriptor ceases to be validThe file *descriptor* remains valid even after the process to which it refers exits. You can close(2) the file descriptor without getting EBADF. I'd say, instead, that "a PID file descriptor is a stable reference to a specific process; process-related operations on a PID file descriptor fail after that process exits".
Thanks, Daniel. I like that rephrasing, but, since pidfd_send_signal() is (so far as I know) currently the only relevant process-related operation (and because this is the manual page describing that syscall), I made it: [[ By contrast, a PID file descriptor is a stable reference to a specific process; if that process terminates, pidfd_send_signal() fails with the error ESRCH. ]] Thanks, Michael -- Michael Kerrisk Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ Linux/UNIX System Programming Training: http://man7.org/training/