popen
также дает curl трубу для чтения из , как показано в этом примере:
$ echo -e 'foo\nbar\nzoo' | \
ruby -e 'pipe = IO.popen("grep oo", "r") {|out| p out.readlines}'
["foo\n", "zoo\n"]
Я полагаю, что curl хочет отправить POST на сервер также из стандартного ввода, откуда ничего не происходит, поэтому время ожидания составляет 30 с.