이미 실행 중인 프로세스의 output을 redirect하기..
글쓴이: jyoung / 작성시간: 금, 2005/11/04 - 10:35오전
실행하기 전에는 command line상에서 ">" 또는 ">>"를 사용하면 간단하게 redirection을 시킬 수 있는데, 문득 실행 중인 프로세스의 output을 redirect하는건 왜 없을까 라는 생각이 들더군요.
일단 실행이 되면 fd 1번이 output으로 연결되니까 실행 중에 그것을 바꿔주는게 쉽지는 않을거 같지만 불가능하지도 않을거 같은데.. 혹시 그런 일을 해주는 프로그램을 알고 계신분이 있으면 알려주시면 감사하겠습니다. :D
Forums:
디버깅용도로라면 다음과 같이 해보세요만일 그 실행중이 PID가 5
디버깅용도로라면 다음과 같이 해보세요
만일 그 실행중이 PID가 555 라면,
$ lsof -p 555
$ gdb prog 555
(gdb) call close(1)
(gdb) call open( "anotherlog" )
(gdb) quit
$ lsof -p 555
위와 아래의 555에 따라 descriptor에 연결된 파일을 살펴보시고
close(1) 을 했기 때문에 가장 낮은 숫자가 다음 이어 오는 open에
들어갈 것이라 생각되어서 dup2를 하지 않았습니다.
open에도 mode에 대한 인자가 있는데, 여러가지로 넣어서도 해보세요
(gdb) call open( "anotherlog", 0 )
때에 따라 생성이 안될 수도 있고 생성돼도 쓰기 가능하지 않을지도 모릅니다.
---
http://coolengineer.com
댓글 달기