dm9pZCAq 59ad376e7c rename to `waitanypid` | il y a 2 mois | |
---|---|---|
include | il y a 4 mois | |
.gitignore | il y a 2 mois | |
.gitmodules | il y a 6 mois | |
LICENSE | il y a 6 mois | |
Makefile | il y a 2 mois | |
README.md | il y a 2 mois | |
wait-parent.sh | il y a 2 mois | |
waitanypid.asm | il y a 2 mois |
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