[Housekeeping] Close system port when jobs are cancelled (#182)

* Created a test setup that works

* Refactored test setup into real-world fixes
This commit is contained in:
Kieran 2024-04-10 22:13:19 -07:00 committed by GitHub
parent e984c05298
commit c36e33e1fd
6 changed files with 52 additions and 3 deletions

26
priv/cmd_wrapper.sh Executable file
View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# This script is a wrapper for other programs
# that ensures they are killed when stdin closes
# (eg: a job terminates)
# Start the program in the background
exec "$@" &
pid1=$!
# Silence warnings from here on
exec >/dev/null 2>&1
# Read from stdin in the background and
# kill running program when stdin closes
exec 0<&0 $(
while read; do :; done
kill -KILL $pid1
) &
pid2=$!
# Clean up
wait $pid1
ret=$?
kill -KILL $pid2
exit $ret