Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
retry(1)		     General Commands Manual			retry(1)

NAME
     retry - Repeat command until a criteria is met, usually success.

SYNOPSIS
     retry [-v] [-h] [-u until] [-w while] command ...

DESCRIPTION
     The tool repeats the given command until the command is successful, backing
     off with a configurable delay between each attempt.

     Retry captures stdin into memory as the data is passed to the repeated com-
     mand,  and  this  captured stdin is then replayed should the command be re-
     peated. This  makes  it  possible	to  embed  the	retry  tool  into  shell
     pipelines.

     Retry captures stdout into memory, and if the command was successful stdout
     is  passed on to stdout as normal, while if the command was repeated stdout
     is passed to stderr instead. This ensures that output is passed  to  stdout
     once and once only.

OPTIONS
     -d seconds, --delay=seconds
	    The number of seconds to back off after each attempt. Multiple comma
	    separated  delays  allow subsequent delays to be different, with the
	    last delay repeated.

     -m message, --message=message
	    A message to include in the notification when repeat has backed off.
	    Defaults to the command name.

     -t times, --times=times
	    The number of times to retry the command. By default we try forever.

     -u criteria, --until=criteria
	    Keep repeating the command until any one of the comma separated cri-
	    teria is met.  Options include 'success', 'true',  'fail',	'false',
	    an integer or a range of integers.	Default is 'success'.

     -w criteria, --while=criteria
	    Keep repeating the command while any one of the comma separated cri-
	    teria  is  met.  Options include 'success', 'true', 'fail', 'false',
	    an integer or a range of integers.

     -h, --help
	    Display this help message.

     -v, --version
	    Display the version number.

RETURN VALUE
     The retry tool returns the return code from  the  command	being  executed,
     once the criteria is reached.

     If the command was interrupted with a signal, the return code is the signal
     number plus 128.

     If  the  command  could not be executed, or if the options are invalid, the
     status 1 is returned.

EXAMPLES
     In this basic example, we repeat the command forever.

	     ~$ retry --until=success -- false
	     retry: 'false' returned 1, backing off for 10 seconds and trying again...
	     retry: 'false' returned 1, backing off for 10 seconds and trying again...
	     retry: 'false' returned 1, backing off for 10 seconds and trying again...

   ^C
     In this more complex example, each invocation of curl is retried until curl
     succeeds, at which point stdout is passed once and once only  to  the  next
     element in the pipeline.

	     ~$ retry -- curl --fail http://localhost/entities | \
	     jq ... | \
	     retry -- curl --fail -X POST http://localhost/resource | \
	     logger -t resource-init

     In  this  example,  we  stagger  each delay exponentially until 64 seconds,
     which is then repeated until interrupted.

	     ~$ retry --until=success --delay "1,2,4,8,16,32,64" -- false
	     retry: false returned 1, backing off for 1 second and trying again...
	     retry: false returned 1, backing off for 2 seconds and trying again...
	     retry: false returned 1, backing off for 4 seconds and trying again...
	     retry: false returned 1, backing off for 8 seconds and trying again...
	     retry: false returned 1, backing off for 16 seconds and trying again...
	     retry: false returned 1, backing off for 32 seconds and trying again...
	     retry: false returned 1, backing off for 64 seconds and trying again...
	     retry: false returned 1, backing off for 64 seconds and trying again...
	     retry: false returned 1, backing off for 64 seconds and trying again...

   ^C
AUTHOR
     Graham Leggett <minfrin@sharp.fm>

				   retry-1.0.5				retry(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=retry&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help