dm9pZCAq 59ad376e7c rename to `waitanypid` | 1 month ago | |
---|---|---|
include | 3 months ago | |
.gitignore | 1 month ago | |
.gitmodules | 5 months ago | |
LICENSE | 5 months ago | |
Makefile | 1 month ago | |
README.md | 1 month ago | |
wait-parent.sh | 1 month ago | |
waitanypid.asm | 1 month ago |
wait any process to exit
this is similar to the shell's builtin wait
, but it can wait for any pid, not just the child pid
NOTE: waitanypid
exits with 0 regardless of pid exit status
waitanypid <pid> [cmd]
pid process id to wait for
cmd optionall command to run with '/bin/sh' after <pid> exits
# standard wait can only wait for child processes
sleep 10 & wait "${!}"
# waitanypid
waitanypid 1 # wait for init to stop :)
sh ./wait-parent.sh
see also wait-parent.sh
to see what actually happens in this script use htop -t
and extrace -t
(extrace)
for example it can be used in swallow
script:
#!/bin/sh --
set -ue
id="$(xdo id)"
xdo hide "${id}"
ppid="${$}"
# shellcheck disable=2016
id="${id}" waitanypid "${ppid}" 'exec xdo show "${id:?}"' &
exec "${@}"
x86_64
linux
build-time dependencies:
examples/x86/include
from fasmg
source
make FASMG=./path/to/fasmg-executable
this will create a static waitanypid
executable of 1469
bytes in size and without any run-time dependencies other than the Linux kernel