현재 프로세스에서 연 파일을 알고 싶습니다.

litwind의 이미지

현재 제가 만든 프로세스에서...

이 놈이 나름대로 데몬 프로그램인데..

신나게 잘 돌다가 한 3시간 쯤 지나면..

세그멘테이션 폴트와 함께..

too many file opened..

라는 에라를 출려하네요~

디버그 할려고 해도~ 고치고 에러 나는 거 함 보려면..

3시간을 기다려야 되니.. -_-;

하핫~ fclose() 도 꽤나 열심히 해줬는데 저런

메세지가 뜨네요~

그래서 어떤 파일들이 현재 열려있어서 저런 메세지가 뜨는지

알고싶습니다.. 도움주세요~ ^^

shkwon81의 이미지

저도 그거 때문에 골치 아픈 적이 있었죠 ^^

lsof 명령어를 사용하세요..

Quote:
lsof - list open files

lsof -p <pid> : <pid> 는 원하시는 프로세스의 pid

와 같은 방식으로 사용하시면 됩니다. 단, 이 명령어는 수퍼유저 용입니다.

또는, proc 파일 시스템을 이용하셔도 됩니다.

/proc/<pid>/fd 디렉토리에 가셔서 "ls -l" 입력하시면 각 fd 가 어느
파일을 가리키고 있는지 확인할 수 있습니다.