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 로 리디렉션합니다 iperflog. 2>&1오류를 포함한 모든 출력이 이 파일에 캡처되도록 stderr를 stdout으로 리디렉션합니다. &백그라운드에서 이 명령을 실행하도록 셸에 지시합니다 . 세션이 닫혀도 SIGHUP 신호를 수신하기 때문에 프로세스가 종료됩니다. nohup신호를 무시하고 프로세스가 계속 실행되도록 허용하여 이 문제를 해결하세요.

그런 다음 실행하여 tail -f iperflog셸에 정상적으로 표시되는 출력을 볼 수 있습니다.

이전 명령에서는 필요하지 않았던 셸이 필요하기 때문에 이는 이상적이지는 않지만 필요한 위치로 이동하게 해주었습니다.

관련 정보