2012-07-12 5 views
14

Utilizzo il programma di ricalco della riga di comando e, in modo interessante, non sono riuscito a trovare un parametro di timeout per l'arricciatura della riga di comando. Ho letto le pagine man per arricciare e googled ma ancora non riuscivo a trovarne una. Il libcurl ha parametri di timeout (CURLOPT_TIMEOUT) ma non è quello che sto cercando. Sto cercando il parametro timeout curl della riga di comando.parametro timeout arricciatura riga di comando

C'è il parametro --max-time che è per il tempo massimo per mantenere la connessione aperta e --connect-timeout che è per la fase di connessione di arricciatura, ma nessuno per il normale timeout.

Qualcuno conosce questo parametro?

+0

Cosa intendi per "timeout normale". – msw

+0

dire che sto cercando di scaricare un grosso file con curl e dire che ci vuole 1 ora per il download. Quindi dovrei impostare il timeout su più di 1 ora. Questo è il timeout a cui mi riferisco. – user1519575

risposta

4

Su un * x, si ha il comando di timeout. prova:

timeout -s SIGTERM 3600 curl --your arguments here 

inviare un SIGTERM dopo 3600 secondi per terminare se, se lo onora. Sempre meglio di un SIGKILL brutale per impostazione predefinita che può danneggiare il file scaricato al 99%: ¬)

+1

Due problemi con questo. (1) questo timeout si applicherà all'intera operazione di arricciatura inclusa la risoluzione DNS, la connessione e l'attesa di risposta. L'uso dei parametri '--connect-timeout' e' --max-time' fornisce un controllo più granulare e mantiene il flusso di controllo in 'curl' stesso; e (2) su ogni * nix che ho controllato, la sintassi corretta è '-s SIGTERM' o' --signal = SIGTERM', non '-SIGTERM'. –

+0

grazie, ho riparato la parte -s –

29

L'opzione --max-time fa esattamente ciò che ti serve: "Tempo massimo consentito per il trasferimento". Pensa semplicemente di sbagliato.