Provided by: timelimit_1.8-1_amd64 bug

NAME

     timelimit — effectively limit the absolute execution time of a process

SYNOPSIS

     timelimit [-pq] [-S killsig] [-s warnsig] [-T killtime] [-t warntime] command
               [arguments ...]

DESCRIPTION

     The timelimit utility executes a given command with the supplied arguments and terminates
     the spawned process after a given time with a given signal.  If the process exits before the
     time limit has elapsed, timelimit will silently exit, too.

     Options:

     -p      If the child process is terminated by a signal, timelimit propagates this condition,
             i.e. sends the same signal to itself.  This allows the program executing timelimit
             to determine whether the child process was terminated by a signal or actually exited
             with an exit code larger than 128.

     -q      Quiet operation - timelimit does not output diagnostic messages about signals sent
             to the child process.

     -S killsig
             Specify the number of the signal to be sent to the process killtime seconds after
             warntime has expired.  Defaults to 9 (SIGKILL).

     -s warnsig
             Specify the number of the signal to be sent to the process warntime seconds after it
             has been started.  Defaults to 15 (SIGTERM).

     -T killtime
             Specify the maximum execution time of the process before sending killsig after
             warnsig has been sent.  Defaults to 120 seconds.

     -t warntime
             Specify the maximum execution time of the process in seconds before sending warnsig.
             Defaults to 3600 seconds.

     On systems that support the setitimer(2) system call, the warntime and killtime values may
     be specified in fractional seconds with microsecond precision.

ENVIRONMENT

     KILLSIG
             The killsig to use if the -S option was not specified.

     KILLTIME
             The killtime to use if the -T option was not specified.

     WARNSIG
             The warnsig to use if the -s option was not specified.

     WARNTIME
             The warntime to use if the -t option was not specified.

EXIT STATUS

     If the child process exits normally, the timelimit utility will pass its exit code on up.
     If the child process is terminated by a signal and the -p flag was not specified, the
     timelimit utility's exit status is 128 plus the signal number, similar to sh(1).  If the -p
     flag was specified, the timelimit utility will raise the signal itself so that its own
     parent process may in turn reliably distinguish between a signal and a larger than 128 exit
     code.

     In rare cases, the timelimit utility may encounter a system or user error; then, its exit
     status is one of the standard sysexits(3) values:

     EX_USAGE
             The command-line parameters and options were incorrectly specified.

     EX_SOFTWARE
             The timelimit utility itself received an unexpected signal while waiting for the
             child process to terminate.

     EX_OSERR
             The timelimit utility was unable to execute the child process, wait for it to
             terminate, or examine its exit status.

EXAMPLES

     The following examples are shown as given to the shell:

           timelimit -p /usr/local/bin/rsync rsync://some.host/dir /opt/mirror

     Run the rsync program to mirror a WWW or FTP site and kill it if it runs longer than 1 hour
     (that is 3600 seconds) with SIGTERM.  If the rsync process does not exit after receiving the
     SIGTERM, timelimit issues a SIGKILL 120 seconds after the SIGTERM.  If the rsync process is
     terminated by a signal, timelimit will itself raise this signal.

           tcpserver 0 8888 timelimit -t600 -T300 /opt/services/chat/stats

     Start a tcpserver(n) process listening on tcp port 8888; each client connection shall invoke
     an instance of an IRC statistics tool under /opt/services/chat and kill it after 600 seconds
     have elapsed.  If the stats process is still running after the SIGTERM, it will be killed by
     a SIGKILL sent 300 seconds later.

           env WARNTIME=4.99 WARNSIG=1 KILLTIME=1.000001 timelimit sh stats.sh

     Start a shell script and kill it with a SIGHUP in a little under 5 seconds.  If the shell
     gets stuck and does not respond to the SIGHUP, kill it with the default SIGKILL just a bit
     over a second afterwards.

SEE ALSO

     kill(1), rsync(1), signal(3), tcpserver(n)

STANDARDS

     No standards documentation was harmed in the process of creating timelimit.

BUGS

     Please report any bugs in timelimit to the author.

AUTHOR

     The timelimit utility was conceived and written by Peter Pentchev <roam@ringlet.net> with
     contributions and suggestions by Karsten W Rohrbach <karsten@rohrbach.de>, Teddy Hogeborn
     <teddy@fukt.bsnet.se>, and Tomasz Nowak <nowak2000@poczta.onet.pl>.