취미생활

[Linux] 프로세스에서 사용 중인 파일 디스크립터 개수 확인하는 법 본문

컴퓨터/Linux

[Linux] 프로세스에서 사용 중인 파일 디스크립터 개수 확인하는 법

달다달아 2022. 9. 14. 01:18
su
password : [비번 입력]
cd /proc/<PID>/fd

각 프로세스 별 파일 디스크립터는 /proc/<PID>/fd 디렉토리에 저장된다.

 

프로세스의 pid는 pgrep으로 구할 수 있는데

 

pid를 개별적으로 구하기가 귀찮다면 아래 명령어로 한 번에 구할 수 있다.

 

cd /proc/`pgrep <프로그램 이름>`/fd

`는 ~를 shift 키를 누르지 않은 상태로 출력할 수 있다.

 

이렇게 실행하면 서브쉘로 pgrep을 실행해 pid를 가져온 뒤 바로 cd 명령어를 실행할 수 있다.

 

파일 디스크립터 보는 법을 알면 디버깅할 때 굉장히 편리하다.

 

가끔씩 로그 쓰레드나 소켓 통신 쓰레드가 미쳐 날뛰어서 파일 디스크립터를 1024개씩 만들어내는 경우가 있는데 이럴 때 통신이나 파일 입출력이 안되는 현상이 발생한다.

 

이러한 에러를 디버깅할 때 사용하면 굉장히 편하다.

 

물론, 가장 좋은 건 이런 현상을 겪지 않는 것이다.

여러분은 fclose와 close 함수를 빼먹지 않고 실행하는 습관을 가지길 바란다.

Comments