Correctly wait on child processes
Command generated to launch via a local Bash shell not use an io.Writer to ensure the I/O copying waits until the process and all potential children are complete.
Coupled with this correction there is the implementation of a more robust go routine for handling SIGTERM while also ensuring the management of a command exit state.
Edited by Paul Bryant