|-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 progs process group instead of its pid.|
|-v||verbose. Print verbose messages to standard error.|
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 progs 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.
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.
Gerrit Pape <email@example.com>