0

ターミナルまたはファイルに書き込むと思われるコマンド パイプラインの中には、かなりの時間が経過するまで何も書き込まないものがあります。

データが行バッファリングされていないように見えますが、Ctrl-C を使用して SIGINT を送信すると、期待される出力が表示されません。その原因は何ですか?

最終的に収集を停止することを決定したときに、データを失うことなく、vmstat 出力の各行を変更して収集したいと考えています。

密接に関連する例を次に示します。

output to terminal: vmstat -n 1 | sed ''
output to terminal: echo foo | sed '' | tee /dev/null
output to file: vmstat -n 1 > somefile
output to file: echo foo | sed '' > somefile
no output to terminal: vmstat -n 1 | sed '' | tee /dev/null
no output to file: vmstat -n 1 | sed '' > somefile
4

1 に答える 1

0

You can try stdbuf with option --output=L or --output=0 to make the output line buffered or unbuffered respectively

stdbuf --output=L vmstat -n 1 >somefile
于 2013-04-13T16:22:57.350 に答える