Man Linux: Main Page and Category List

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)