Invoke multiple commands, running in parallel
This is a super simple npm module to run shell commands in parallel. All processes will share the same stdout/stderr, and if any command exits with a non-zero exit status, the rest are stopped and the exit code carries through.
How is this different than:
$ cmd1 & cmd2 & cmd3
Cross platform -- works on Unix or Windows.
& creates a background process, which only exits if you kill it or it ends.
parallelshell will autokill processes if one of the others dies.
command1 & command2 & command3 will wait in the terminal until command3 ends only. parallelshell will wait until all 3 end.
If command1 or command2 exit with non-zero exit code, then this will not effect the outcome of your shell (i.e. they can fail and npm/bash/whatever will ignore it).
parallelshell will not ignore it, and will exit with the first non-zero exit code.
Pressing Ctrl+C will exit command3 but not 1 or 2.
parallelshell will exit all 3
parallelshell outputs all jobs stdout/err to its stdout/err. background jobs do that... kind of coincidentally (read: unreliably)
Simply run the following to install this to your project:
npm i --save-dev parallelshell
Or, to install it globally, run:
npm i -g parallelshell
To use the command, simply call it with a set of strings - which correspond to shell arguments, for example:
parallelshell "echo 1" "echo 2" "echo 3"
This will execute the commands
echo 2 and
echo 3 simultaneously.
Note that on Windows, you need to use double-quotes to avoid confusing the argument parser.
-h, --help output usage information-v, --verbose verbose logging-w, --wait will not close sibling processes on error