lsof - open 된 파일에 대한 정보 출력

lsof 란 ?

lsofList Open Files 의 약자이고, 시스템에서 열린 파일 목록을 보여준다.
여러가지 옵션이 많지만 주로 아래 명령어들만 사용했다.

특히 특정 프로세스가 file 을 열고 닫지 않아서 발생하는 error 및 crash 를 잡을 때 lsof - p 를 이용하면 어떤 파일을 닫지 않아 fd leak 이 발생하는지 알 수 있어서 코드 상 수정해야할 부분을 캐치하기 쉽다.
또 소켓 프로그래밍을 하는 경우엔 포트 점유 목록을 출력하는 명령어가 도움이 될 수 있겠다.

A. 열린 파일 목록 모두 출력

1
lsof

B. 특정 프로세스의 열린 파일 목록 출력

1
2
# -p 다음에 pid 를 입력하면 된다
lsof -p <pid>

C. TCP 포트 점유 목록 출력

1
2
# 아래는 22번 TCP 포트를 점유하는 pid 및 fd 를 출력한다
lsof -i TCP:22