Provided by: socklog_2.1.0-8.1build1_amd64 bug

NAME

       tryto  -  tries to run a command limited by a timeout or number of tries, can be used to run as svlogd(8)
       processor.

SYNOPSIS

       tryto [-pPv] [-t sec] [-k ksec] [-n tries] prog

DESCRIPTION

       prog consist of one or more arguments.

       tryto runs and watches prog, feeding its standard input to prog's standard input.  If prog exits  with  a
       return code other then 0, tryto runs prog again after sleeping one second.

       If the number of retries reaches the maximal number of tries, tryto prints an error message and gives up.

       If the timeout sec seconds is reached and prog is still running, tryto sends a TERM signal to prog, waits
       ksec seconds for prog to terminate, then sends a KILL signal if prog still is there, and exits as soon as
       possible.

OPTIONS

       -t sec timeout.  Set the timeout to send TERM to prog to sec seconds.  Default is 180.

       -k ksec
              kill timeout.  Set the timeout to send KILL to prog to ksec seconds.  Default is 5.

       -n tries
              Set  the  maximal number of tries to tries.  If prog exited with a return code other that 0, tryto
              tries to rewind standard input to  the  beginning  using  lseek(2)  before  starting  prog  again.
              Default is 5.

       -p     processor.  Use this option if you run tryto as a svlogd(8) processor (see below).

       -P     process group.  Run prog in a new session and process group, and send signals on timeout to prog's
              process group instead of its pid.

       -v     verbose.  Print verbose messages to standard error.

PROCESSOR

       If tryto sees the -p option,  tryto  runs  as  a  svlogd(8)  or  multilog(8)  processor,  making  use  of
       filedescriptors 4 and 5:

       Before  starting  prog,  tryto moves the filedescriptor 5 to 2, so all error messages from tryto and prog
       will be saved in svlogd(8)'s state to be processed on the next run of tryto -p.

       After starting prog, tryto first feeds all data it reads  from  filedescriptor  4  into  prog's  standard
       input, then all data from filedescriptor 0.

       If  prog  fails  by  timeout  sec seconds or maximal number of tries, tryto prints all data from standard
       input to standard output, an error message to standard error, and exits with 0.

EXIT CODES

       If tryto itself fails, it returns 111.

       If tryto runs as a svlogd(8) processor, tryto returns 0 in all other cases.

       If prog was run successfully, tryto returns 0.

       If prog failed by timeout, tryto returns 100.

       If prog failed by maximal number of tries, tryto returns the last return code from prog.

SEE ALSO

       socklog(8), uncat(1), svlogd(8), multilog(8), lseek(2)

        http://smarden.org/socklog/
        http://smarden.org/runit/

AUTHOR

       Gerrit Pape <pape@smarden.org>

                                                                                                        tryto(1)