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 stan-
       dard  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 sec-
              onds.  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) pro-
              cessor (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
       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)

Man(1) output converted with man2html