So far I couldn't find anything really, but is it true that curl
doesn't really time out at all?
user@host:~# curl http://localhost/testdir/image.jpg
I'm asking because I'm redirecting any request for images in testdir
to a separate Apache module which generates those pictures on the fly. It can take up to 15 minutes before the picture is actually ready and delivered to the requesting client.
Will curl
always wait (or is it depending on configuration) or is there any sort of timeout?
Best Answer
Yes.
Timeout parameters
curl
has two options:--connect-timeout
and--max-time
.Quoting from the manpage:
and:
Defaults
Here (on Debian) it stops trying to connect after 2 minutes, regardless of the time specified with
--connect-timeout
and although the default connect timeout value seems to be 5 minutes according to theDEFAULT_CONNECT_TIMEOUT
macro in lib/connect.h.A default value for
--max-time
doesn't seem to exist, makingcurl
wait forever for a response if the initial connect succeeds.What to use?
You are probably interested in the latter option,
--max-time
. For your case set it to900
(15 minutes).Specifying option
--connect-timeout
to something like60
(one minute) might also be a good idea. Otherwisecurl
will try to connect again and again, apparently using some backoff algorithm.