Annotation of src/usr.bin/timeout/timeout.1, Revision 1.3
1.3 ! schwarze 1: .\" $OpenBSD: timeout.1,v 1.2 2021/09/02 21:50:24 jmc Exp $
1.1 job 2: .\" $NetBSD: timeout.1,v 1.4 2016/10/13 06:22:26 dholland Exp $
3: .\"
4: .\" Copyright (c) 2014 Baptiste Daroussin <bapt@FreeBSD.org>
5: .\" All rights reserved.
6: .\"
7: .\" Redistribution and use in source and binary forms, with or without
8: .\" modification, are permitted provided that the following conditions
9: .\" are met:
10: .\" 1. Redistributions of source code must retain the above copyright
11: .\" notice, this list of conditions and the following disclaimer.
12: .\" 2. Redistributions in binary form must reproduce the above copyright
13: .\" notice, this list of conditions and the following disclaimer in the
14: .\" documentation and/or other materials provided with the distribution.
15: .\"
16: .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17: .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18: .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19: .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20: .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21: .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22: .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23: .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24: .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25: .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26: .\" SUCH DAMAGE.
27: .\"
28: .\" $FreeBSD: head/usr.bin/timeout/timeout.1 268861 2014-07-18 22:56:59Z bapt $
29: .\"
1.3 ! schwarze 30: .Dd $Mdocdate: September 2 2021 $
1.1 job 31: .Dt TIMEOUT 1
32: .Os
33: .Sh NAME
34: .Nm timeout
35: .Nd run a command with a time limit
36: .Sh SYNOPSIS
37: .Nm
1.2 jmc 38: .Op Fl k Ar time
39: .Op Fl s Ar sig
40: .Op Fl -foreground
41: .Op Fl -preserve-status
42: .Ar duration
43: .Ar command
44: .Op Ar args
1.1 job 45: .Sh DESCRIPTION
1.2 jmc 46: The
1.1 job 47: .Nm
1.2 jmc 48: utility executes
49: .Ar command ,
50: with any
51: .Ar args ,
52: and kills it if it is still running after the
53: specified
54: .Ar duration .
1.1 job 55: If
1.2 jmc 56: .Ar duration
57: is 0, the timeout is disabled.
58: .Pp
59: The options are as follows:
60: .Bl -tag -width Ds
61: .It Fl k Ar time , Fl -kill-after Ns = Ns Ar time
1.3 ! schwarze 62: Send a second signal,
! 63: .Dv SIGKILL ,
! 64: if the command is still running
1.1 job 65: .Ar time
66: after the first signal was sent.
1.2 jmc 67: .It Fl s Ar sig , Fl -signal Ns = Ns Ar sig
68: Specify the signal to send on timeout, instead of the default
69: .Dv SIGTERM .
70: .It Fl -foreground
71: Do not propagate the timeout signal to children processes.
72: .It Fl -preserve-status
73: Always exit with the same status as
74: .Ar command ,
75: even if the timeout was reached.
1.1 job 76: .El
77: .Sh DURATION FORMAT
78: .Ar duration
79: and
80: .Ar time
1.2 jmc 81: may contain a decimal fraction.
82: The value defaults to seconds unless a unit suffix is given.
83: .Pp
84: The supported unit suffixes are:
1.1 job 85: .Pp
1.2 jmc 86: .Bl -tag -width Ds -offset indent -compact
1.1 job 87: .It s
88: seconds
89: .It m
90: minutes
91: .It h
92: hours
93: .It d
94: days
95: .El
96: .Sh EXIT STATUS
1.3 ! schwarze 97: If the timeout was not reached or
! 98: .Fl -preserve-status
! 99: was set, the exit status of
1.1 job 100: .Ar command
101: is returned.
102: .Pp
103: If the timeout was reached and
1.2 jmc 104: .Fl -preserve-status
105: was not set, an exit status of 124 is returned.
1.1 job 106: .Pp
107: If
108: .Ar command
1.2 jmc 109: exited after receiving a signal, the exit status returned is the signal number
110: plus 128.
1.1 job 111: .Sh SEE ALSO
112: .Xr kill 1 ,
113: .Xr signal 3
114: .Sh HISTORY
115: The
116: .Nm
1.3 ! schwarze 117: utility first appeared in GNU Coreutils 7.0 and has been available since
! 118: .Ox 7.0 .