다른 프로세스의 stdout 가로채기

hongwoo의 이미지

다른 프로세스의 stdout을 가로채고 싶습니다.

예를 들어.. 다음과 같은 상황입니다..

---------------------------------------------------
p1 은 1초마다 "Hello"를 출력합니다.

다른 터미널로 들어온 사용자(root)는 p1의 stdout을 훔쳐보고 싶습니다.
other_process_stdout 이라는 프로그램이 있어서 다음과 같이 실행합니다.
./other_process_stdout (p1's pid)

그러면 p1의 stdout을 볼 수 있게 됩니다.
---------------------------------------------------

새로운 시스템 콜을 만들거나., 커널을 변경하는 것도 생각하고 있습니다.

뭐 악의적인 의도로 위의 것들이 필요한건 아닙니다.
주로 ssh로 들어와서 p1을 background로 실행해놓고.., session을 닫습니다.
밥먹고 와보니 p1이 "Hel" 만 찍고 있습니다. 여러가지 예외 상황에서 디버그 메시지를 stdout으로 보내고 있는데., session이 종료되었으므로 알 방법이 없습니다.
이 때... other_process_stdout과 같은 프로그램이 있으면 좋겠다는 생각이 들어서 ^^;;

물론 로그파일에 쓰거나 하는 다른 방법이 있겠지만., ;;;;;
왠지 가로채고 싶습니다. ^^

cinsk의 이미지

screen(1)을 쓰면 다 해결될 것 같군요. :)

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

purewell의 이미지

엉뚱하겠지만 /dev/pty? 파일을 읽어도 될 것 같습니다.
...이라고 썼지만 세션이 닫혔다고 하므로 무효로군요.
_____________________________
언제나 맑고픈 샘이가...
http://yubink.com - 강아지 필요하세요?
http://purewell.biz - 헙!!

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz