timelimit

     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 propa-
             gates 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.

     EX_USAGE
             The command-line parameters and options were incorrectly speci-
             fied.

     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 termi-
     nated 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 con-
     nection 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 sec-
     onds.  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>.
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2017 Hurricane Electric. All Rights Reserved.