in reply to fork and kill process

1) You will have big difficulties if you will continue use fork because in this case you have to use any IPC (inter process communication) way to retrieve data from child (e.g. you can simply write it to file).

2) If you still wanna to use wget you can do it this way :

eval { local $SIG{ALRM} = sub {die "Timeout"}; alarm 60; #your timeout here $resp = `wget ....` } if ($@) { #something worng }
3) I stricly suggest you to use LWP module like instead of wget

4) Or ParallelUserAgent module (PUA) if you need fast simult download from several places