Suppress spurious "killing process N: Operation not permitted" on macOS
This commit is contained in:
parent
25230a17a9
commit
177f3996e2
1 changed files with 9 additions and 2 deletions
|
@ -724,8 +724,15 @@ int Pid::kill()
|
|||
/* Send the requested signal to the child. If it has its own
|
||||
process group, send the signal to every process in the child
|
||||
process group (which hopefully includes *all* its children). */
|
||||
if (::kill(separatePG ? -pid : pid, killSignal) != 0)
|
||||
printError((SysError(format("killing process %1%") % pid).msg()));
|
||||
if (::kill(separatePG ? -pid : pid, killSignal) != 0) {
|
||||
/* On BSDs, killing a process group will return EPERM if all
|
||||
processes in the group are zombies (or something like
|
||||
that). So try to detect and ignore that situation. */
|
||||
#if __FreeBSD__ || __APPLE__
|
||||
if (errno != EPERM || ::kill(pid, 0) != 0)
|
||||
#endif
|
||||
printError((SysError("killing process %d", pid).msg()));
|
||||
}
|
||||
|
||||
return wait();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue