Linux shell script asynchronous commands and notification when completed Linux shell script asynchronous commands and notification when completed linux linux

Linux shell script asynchronous commands and notification when completed


You might want to use command grouping to maintain which steps need to be synchronous:

step1( step2 && step4 && step6 ) &( step3 && step5 && step7 ) &wait && echo "all done"


launch step 4 and 5 in background in your script (ending &), then simply call wait bash builtin before running step 6


You are looking for the wait command.

wait: wait [id]    Wait for job completion and return exit status.    Waits for the process identified by ID, which may be a process ID or a    job specification, and reports its termination status.  If ID is not    given, waits for all currently active child processes, and the return    status is zero.  If ID is a a job specification, waits for all processes    in the job's pipeline.    Exit Status:    Returns the status of ID; fails if ID is invalid or an invalid option is    given.