Hasta ahora no pude encontrar nada realmente, pero ¿es cierto que curlrealmente no se agota el tiempo?
user@host:~# curl http://localhost/testdir/image.jpg
Lo pregunto porque estoy redirigiendo cualquier solicitud de imágenes testdira un módulo Apache separado que genera esas imágenes sobre la marcha. Pueden pasar hasta 15 minutos antes de que la imagen esté realmente lista y entregada al cliente solicitante.
Se curlespere siempre (o es que según la configuración) o hay alguna especie de tiempo de espera?

Respuestas:
Si.
Parámetros de tiempo de espera
curltiene dos opciones:--connect-timeouty--max-time.Citando de la página de manual:
y:
Valores predeterminados
Aquí (en Debian) deja de intentar conectarse después de 2 minutos, independientemente del tiempo especificado
--connect-timeouty aunque el valor predeterminado de tiempo de espera de conexión parece ser de 5 minutos según laDEFAULT_CONNECT_TIMEOUTmacro en lib / connect.h .--max-timeParece que no existe un valor predeterminado para , haciendocurlesperar una respuesta para siempre si la conexión inicial tiene éxito.¿Qué usar?
Usted probablemente está interesado en esta última opción,
--max-time. Para su caso, configúrelo en900(15 minutos).Especificar la opción
--connect-timeoutde algo como60(un minuto) también podría ser una buena idea. Decurllo contrario , intentará conectarse una y otra vez, aparentemente utilizando algún algoritmo de retroceso.fuente
Hay timelimit: / usr / bin / timelimit - limita efectivamente el tiempo de ejecución absoluto de un proceso
fuente
Mejor que
--max-timelas--speed-limity las--speed-timeopciones. En resumen,--speed-limitespecifica la velocidad promedio mínima que está dispuesto a aceptar, y--speed-timeespecifica cuánto tiempo la velocidad de transferencia puede permanecer por debajo de ese límite antes de que la transferencia se agote y se cancele.fuente
Si tiene coreutils instalados en MacOS, puede usar el comando GNU timeout que se incluye con ese paquete. Todas las herramientas de GNU tienen el prefijo a,
gpor lo que sería la CLIgtimeout.Ejemplo
fuente
Un par de soluciones en BASH4 +
Uso de la muestra:
RECOMIENDA QUE NC se use si necesitamos un puerto específico
fuente