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.
currently not maintained, see Consolidation of multiple similar libraries
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 1
echo 2
and echo 3
simultaneously.
Note that on Windows, you need to use double-quotes to avoid confusing the argument parser.
Available options:
-h, --help output usage information
-v, --verbose verbose logging
-w, --wait will not close sibling processes on error