coreutils
[Top][All Lists]
Advanced

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

Re: potential exec/nohup/timeout improvement for Linux: prctl(PR_SET_PDE


From: Alain Williams
Subject: Re: potential exec/nohup/timeout improvement for Linux: prctl(PR_SET_PDEATHSIG)
Date: Thu, 31 Aug 2017 15:35:03 +0100
User-agent: Mutt/1.5.20 (2009-12-10)

On Thu, Aug 31, 2017 at 02:52:58PM +0100, Richard W.M. Jones wrote:
> 
> On Thu, Aug 31, 2017 at 07:59:41AM -0500, Eric Blake wrote:
> > Rich Jones just taught me about Linux' prctl(PR_SET_PDEATHSIG), which
> > allows you to run a helper executable that will automatically be killed
> > if its parent process dies.  I'm trying to figure out if coreutils
> > should provide support for that API via any of its existing wrapper
> > utilities (in fact, it sounds somewhat like the opposite of nohup -
> > instead of spawning a child process that survives the shell's death, we
> > want to be able to spawn a child process that automatically cleans
> > itself up on the shell's death).  Or maybe we make a new wrapper
> > utility.  However, since the functionality is currently Linux-only, I'm
> > also wondering if coreutils is still a good choice for this
> > functionality, or if we should pursue exposing it in some other package
> > of useful shell utilities.
> 
> My idea (I'll leave it to someone else to implement) would be some
> kind of cleanup wrapper for shell scripts, like:
> 
>   autocleanup [-s TERM] someprog &

But beware: that Linux octopus systemd will probably get in the way. It has been
killing 'nohup' sessions for about a year.

Look at systemd-run(1) for some ways round this.

> If the main script exits, someprog gets killed automatically.  No need
> for traps etc.
> 
> Note that ‘PR_SET_PDEATHSIG’ is passed through exec to non-setuid
> processes so this is fairly simple to implement.  For setuid it would
> fail silently, and testing for setuid might be problematic or racy I
> suppose.
> 
> Of course this is all Linux-only.  Do other kernels implement anything
> like this?  We could use it for nbdkit:
> 
> https://github.com/libguestfs/nbdkit/commit/370b554fb38be7360815af70d5e0175842c451c6

-- 
Alain Williams
Linux/GNU Consultant - Mail systems, Web sites, Networking, Programmer, IT 
Lecturer.
+44 (0) 787 668 0256  http://www.phcomp.co.uk/
Parliament Hill Computers Ltd. Registration Information: 
http://www.phcomp.co.uk/contact.php
#include <std_disclaimer.h>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]