xref: /freebsd-12.1/usr.bin/timeout/timeout.1 (revision bb7d0109)
1.\" Copyright (c) 2014 Baptiste Daroussin <[email protected]>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd February 20, 2017
28.Dt TIMEOUT 1
29.Os
30.Sh NAME
31.Nm timeout
32.Nd run a command with a time limit
33.Sh SYNOPSIS
34.Nm
35.Op Fl -signal Ar sig | Fl s Ar sig
36.Op Fl -preserve-status
37.Op Fl -kill-after Ar time | Fl k Ar time
38.Op Fl -foreground
39.Ao Ar duration Ac
40.Ao Ar command Ac
41.Ao Ar args ... Ac
42.Sh DESCRIPTION
43.Nm
44starts the
45.Ar command
46with its
47.Ar args.
48If
49.Ar command
50is still running after
51.Ar duration ,
52it is killed.
53By default,
54.Ar SIGTERM.
55is sent.
56.Bl -tag -width "-k time, --kill-after time"
57.It Fl -preserve-status
58Always exits with the same status as
59.Ar command
60even if it times out.
61.It Fl -foreground
62Do not propagate timeout to the
63.Ar command
64children.
65.It Fl s Ar sig , Fl -signal Ar sig
66Specify the signal to send on timeout.
67By default,
68.Ar SIGTERM .
69is sent.
70.It Fl k Ar time , Fl -kill-after Ar time
71Send a
72.Ar SIGKILL
73signal if
74.Ar command
75is still running after
76.Ar time
77after the first signal was sent.
78.El
79.Sh DURATION FORMAT
80.Ar duration
81and
82.Ar time
83can be integer or decimal numbers.
84Values without unit symbols are interpreted as seconds.
85.Pp
86Supported unit symbols are:
87.Bl -tag -width indent -compact
88.It s
89seconds
90.It m
91minutes
92.It h
93hours
94.It d
95days
96.El
97.Sh EXIT STATUS
98If the timeout was not reached, the exit status of
99.Ar command
100is returned.
101.Pp
102If the timeout was reached and
103.Fl -preserve-status
104is set, the exit status of
105.Ar command
106is returned.
107If
108.Fl -preserve-status
109is not set, an exit status of 124 is returned.
110.Pp
111If
112.Ar command
113exits after receiving a signal, the exit status returned is the signal number
114plus 128.
115.Pp
116If
117.Ar command
118is an invalid command, the exit status returned is 126.
119.Pp
120If
121.Ar command
122is a non existing command, the exit status returned is 127.
123.Pp
124If an invalid parameter is passed to
125.Fl s
126or
127.Fl k ,
128the exit status return is 125.
129.Sh SEE ALSO
130.Xr kill 1 ,
131.Xr signal 3
132.Sh HISTORY
133The
134.Nm
135command first appeared in
136.Fx 10.3 .
137.Sh AUTHORS
138.An Baptiste Daroussin Aq Mt [email protected]
139and
140.An Vsevolod Stakhov Aq Mt [email protected]
141