Leveraging timeout when waiting for command completion
Sometimes, waiting for a command to finish execution or ignoring commands until completion might not be considered a solid practice in scripting, though it does have applications:
- Where commands take variable lengths of time to complete (for example, pinging a network host)
- Where tasks or commands can be executed in such a way that the master script waits for the success or failure of several multiple operations
However, the important thing to note is that timeout/wait requires a process, or even a subshell so that it can be monitored (by the Process ID or PID). In this recipe, we will demonstrate the use of waiting for a subshell with the timeout command (which was added into the coreutils package 7.0) and how to do so using trap and kill (for alarms/timers).
Getting ready
In earlier recipes, we introduced the use of trap
to catch signals, and the use of kill
to send signals to processes. These will be explained further in this recipe, but...