[英]gnu parallel supresses output of ssh and scp when using --line-buffer option
[英]GNU Parallel: --line-buffer option doesn't work with --pipe
我試圖並行化一些需要實時處理的任務,所以我使用了--line-buffer。 我正在處理非常長的字符串,但后來我注意到它有時會達到行長度限制,使command line too long
錯誤,所以我決定管它們
但是當我使用--pipe選項時, - line-buffer停止工作
我用更簡單的命令測試,問題仍然存在
# Returns instantly, but pass the data as args
(echo 1; echo 2; sleep 100) | parallel -j1 --lb cat
# Pass the data to STDIN, but only after 100 seconds
(echo 1; echo 2; sleep 100) | parallel -j1 --lb --pipe cat
我在Arch Linux上使用並行20190422
# Pass the data to STDIN, but only after 100 seconds
(echo 1; echo 2; sleep 100) | parallel -j1 --lb --pipe cat
這是由於GNU Parallel默認讀取1 MB。 所以GNU Parallel等待更多輸入。 僅在100秒后STDIN關閉,GNU Parallel獲得EOF。
你可以這樣做:
(echo 1; echo 2; echo 3; sleep 100) | parallel -j1 --block 1 -N1 --lb --pipe 'date;cat'
但是如果線條更長,那么增加--block
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.