Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/msantos/pdeathsigexec
signal process when parent exits
https://github.com/msantos/pdeathsigexec
exec prctl procctl signal
Last synced: 3 days ago
JSON representation
signal process when parent exits
- Host: GitHub
- URL: https://github.com/msantos/pdeathsigexec
- Owner: msantos
- License: isc
- Created: 2023-08-07T11:16:12.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-14T13:13:45.000Z (8 days ago)
- Last Synced: 2024-12-14T14:20:37.660Z (8 days ago)
- Topics: exec, prctl, procctl, signal
- Language: C
- Size: 14.6 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SYNOPSIS
pdeathsigexec *cmd* *...*
# DESCRIPTION
pdeathsigexec: signal process when parent exits
A subprocess whose parent exits can be re-parented to init (PID 1) and
continue to run. `pdeathsigexec` sets the process to have a signal sent
if the parent process terminates.The "signal on parent termination" behaviour applies
to the executed process only and not descendents
([prctl(2)](https://man7.org/linux/man-pages/man2/prctl.2.html)):```
The parent-death signal setting is cleared for the child of a fork(2).
It is also (since Linux 2.4.36 / 2.6.23) cleared when executing a
set-user-ID or set-group-ID binary, or a binary that has associated
capabilities (see capabilities(7)); otherwise, this value is preserved
across execve(2).
```The behaviour can be set for related, dynamically linked processes in
a supervision tree by using a `LD_PRELOAD` library (see `EXAMPLES`).# EXAMPLES
```
$ sh -c "sleep inf" &
[1] 25880
$ kill -9 25880
$ pgrep -fa sleep
25882 sleep inf
```## pdeathsigexec
```
$ sh -c "pdeathsigexec sleep inf" &
[1] 25926
$ kill -9 25926
$ pgrep -fa sleep```
## libpdeathsigexec
```
$ LD_PRELOAD=libpdeathsigexec.so sh -c 'sh -c "sleep inf" & sleep inf' &
[1] 25987
$ kill -9 25987
$ pgrep -fa sleep```
# Build
```
make#### static executable using musl
./musl-make
```# OPTIONS
## pdeathsigexec
-s/--signal
: set the termination signal (default `9` (SIGKILL))# ENVIRONMENT VARIABLES
PDEATHSIGEXEC_SIGNAL
: set the termination signal (default `9` (SIGKILL))