lsof
프로세스·시스템
쓰는 꼴
lsof -i :<port>열려 있는 파일과 소켓을 모두 늘어놓아 "3000번 포트를 누가 쥐고 있나"에 답합니다 — sudo 없이는 내 프로세스만 보이니, 빈 결과가 포트가 비었다는 뜻은 아닙니다.
자주 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| -i :3000 | Which process holds port 3000, in either direction. |
| -i TCP -sTCP:LISTEN | Listening TCP sockets only. |
| -t | Print bare PIDs, made for piping into kill. |
| -p <pid> | Everything one process has open. |
| -u <user> | One user's open files. |
| +D <dir> | Every open file underneath a directory, recursively. |
| -n -P | Skip host and port name lookups, which makes it much faster. |
예시
lsof -i :3000The classic answer to "something is already using port 3000".
kill -9 $(lsof -ti :3000)Kill whatever holds that port.
sudo lsof +D /var/logFind the process keeping a deleted log file open.
무엇이 돌고 있고 무엇이 자원을 먹는지 봅니다. 죽이기 전에 무엇인지 확인하는 것이 순서입니다.
읽는 방법
- 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
- 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
- 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.
자주 묻는 것
Q. lsof은 무엇을 하나요?
열려 있는 파일과 소켓을 모두 늘어놓아 "3000번 포트를 누가 쥐고 있나"에 답합니다 — sudo 없이는 내 프로세스만 보이니, 빈 결과가 포트가 비었다는 뜻은 아닙니다.
Q. 어떻게 치나요?
lsof -i :<port> — 대괄호는 생략할 수 있는 자리입니다.
Q. 옵션은 몇 개나 자주 쓰나요?
여기 정리한 것은 7개입니다. 전체 목록은 man lsof에 있습니다. 이 명령은 프로세스·시스템 갈래입니다.
같이 보는 명령
man 페이지: man lsof