#cli #cli-utility #retry #ping #command-line-tool #utility #file #waitfor

app waitfor-cli

CLI utility to retry commands until they exit 0

2 releases

0.1.1 Mar 29, 2023
0.1.0 Mar 29, 2023

#688 in Command line utilities


95 lines


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

# 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).

Command output

waitfor forwards all standard output and error to its standard output and standard error.

Backoff and Timeout

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.


~75K SLoC