I am running multiple processes and want to exit with the appropriate exit code (this means error on failure, success otherwise) if any of them fails or exists.
Additionally if any child process exits or fails, any other child processes should also be shut down.
My current non-functional solution (yarn is just an example; may be any other command):
#!/bin/bash -e # Run other process before start sh ./bin/optimize.sh trap 'exit' INT TERM trap 'kill -INT 0' EXIT # Run Schedule sh ./bin/schedule.sh & # Run a long running task yarn task & wait
#!/bin/bash -e while true; do yarn schedule sleep 30 done
If something in
yarn schedule fails, everything exists correctly. But when I kill the process via ctrl+c or
yarn task exits
yarn schedule keeps running.
How to get this working regardless of what the child processes are (bash, yarn, php or whatever)?
I can't use GNU parallel.