로 리디렉션하는 stdout
실행 중인 프로세스를 캡처하고 싶습니다. 시스템 호출을 사용해 보았지만 fd "1"을 닫으면 사용 가능한 가장 낮은 fd 번호이기 때문에 다른 파일에 할당됩니다.stdout
/dev/null
fcntl()
주어진 fd를 잠그고 다른 파일에 다시 할당하는 방법에 대한 아이디어가 있습니까?
답변1
proc 파일 시스템을 사용하여 캡처할 수 있다고 생각합니다.
$ cat /proc/<PID>/fd/1
답변2
답변3
리디렉션을 사용할 수 있습니다(https://github.com/jerome-pouiller/reredirect/).
reredirect -m /dev/null <PID>
나중에 다음 명령을 사용하여 프로세스의 초기 출력을 복원할 수 있습니다.
reredirect -N -O <M> -E <N> <PID>
( 이전에 시작된 리디렉션에 의해 제공됨) <M>
.<N>
reredirect는 README
다른 명령으로 리디렉션하는 방법도 설명합니다.