waitfor
is a command-line utility that executes another command repeatedly,
until it exits with a zero exitstatus.
The basic usage is:
# Wait for a file to be downloaded successfully.
waitfor curl -O http://example.com/file.tar.gz
# Wait for a remote host to respond to a ping.
waitfor ping -c 1 -t 1 192.168.1.42
# Wait for a FIFO socket file to appear on disk.
waitfor test -f /tmp/mysql.sock
By default, waitfor
will run the command with a linear delay of 100ms between
invocations. This can be adjusted with the --delay
/ -d
options (in
milliseconds).
waitfor
forwards all standard output and error to its standard output and
standard error.
waitfor
can be configured with two types of delays between attempts.
- Linear delay (
--linear
/-l
, default) will pause a number of milliseconds (specified by--delay
/-d
) between executions. - Exponential backoff (
--backoff
/-b
) will start with the inital delay (--delay
/-d
) and increase at a provided rate (--rate
/-r
).
In all cases, the delay is calculated after an attempt completes, not from the time an attempt is started, so it cannot guarentee a rate of requests because that is dependent on the time an individual attempt takes.