iperfデーモンはログファイルに何も出力しません。

iperfデーモンはログファイルに何も出力しません。

~によると文書、iperf(v2)サーバーはデーモンモードで実行でき、次のように出力をログファイルに送信できます。iperf -s -D > iperflog

CentOSのホームディレクトリで通常のユーザーと同じようにこのコマンドを実行しましたが、ログファイルは常に空です。

なしで実行すると、-D期待どおりに実行され、次のログファイルが生成されます。

------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local x.x.x.x port 5001 connected with x.x.x.x port 50928
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 3.0 sec   100 MBytes   279 Mbits/sec

これはiperfのバグですか、それとも出力リダイレクトを理解していませんか?

ベストアンサー1

同じことを試した後にこの問題が発生しました。コメントに初心者が言ったように-o、ファイルとして出力する必要があるフラグがあり、マニュアルページにあるにもかかわらず、Linuxでは動作しないことがわかりました。最終的に私に必要なのは、SSHセッションが中断された後でもiperfが実行され続けることです。最後に、次のコマンドを使用しました。

nohup iperf -s > iperflog 2>&1 &

より詳細に説明するために、サーバーフラグでiperfを実行し、stdoutをfileにリダイレクトしますiperflog2>&1エラーを含むすべての出力がこのファイルにキャプチャされるように、stderrをstdoutにリダイレクトします。&バックグラウンドでこのコマンドを実行するようにシェルに指示します。セッションが閉じてもSIGHUP信号を受信するため、プロセスは終了します。nohupシグナルを無視してプロセスを実行し続けることで、この問題を解決してください。

その後、実行してtail -f iperflogシェルに正常に表示される出力を表示できます。

前のコマンドでは不要なシェルが必要なので、これは理想的ではありませんが、必要な場所に移動させました。

おすすめ記事