Sujet : Re: Cleaning up background processes
De : ldo (at) *nospam* nz.invalid (Lawrence D'Oliveiro)
Groupes : comp.unix.shellDate : 05. May 2024, 22:21:56
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v18pp3$21u38$1@dont-email.me>
References : 1
User-Agent : Pan/0.155 (Kherson; fc5a80b8)
On Sun, 5 May 2024 19:06:22 -0000 (UTC), Christian Weisgerber wrote:
You have a shell script that starts some background process with &.
Now you want to make sure that the background process terminates
when the shell script terminates.
There is no standard POSIX solution to this. There is a Linux-specific
solution, through the prctl(2) call
<
https://manpages.debian.org/2/prctl.en.html>: in a child process, you
make a call with PR_SET_PDEATHSIG and specify a signal to be sent to
the child if/when the parent terminates, such as SIGKILL.
Note also the PR_SET_CHILD_SUBREAPER function: this is useful if a
child process spawns its own child and then dies; this allows the
subreaper process to get the notification when that child-of-a-child
terminates, instead of passing that buck back to pid 1.