웹정보

lsof (list of open file) - 유닉스 명령어

quantumcode 2024. 6. 18. 17:18
728x90

cli환경에서 기존 프로세서 종료 방법 :

lisof 도음내용:

 

lsof란?

lsof는 **“List Open Files”**의 줄임말로,

현재 시스템에서 열려 있는 파일이나 네트워크 포트를 사용하는 프로세스를 확인할 수 있는 명령어입니다.

 

 

 

✅ -t 옵션

: “terse” (간단한 출력)

기능: PID만 출력

lsof의 기본 출력은 열려 있는 파일, 사용자 등 많은 정보를 보여주지만,

-t 옵션을 사용하면 간단히 프로세스 ID(PID)만 출력합니다.

 

🟢 예:

lsof -t -i :3000

→ 3000번 포트를 사용하는 프로세스의 PID만 출력

 

 

 

-i 옵션

: “internet” 또는 “network interface”

기능: 네트워크 관련 정보 필터링

-i 옵션은 특정 포트나 프로토콜, IP 주소에 해당하는 네트워크 연결을 검색할 때 사용합니다.

 

🟢 예:

lsof -i :3000

→ 3000번 포트를 사용하는 모든 프로세스 정보 출력

-t를 함께 쓰면 해당 포트를 사용하는 PID만 출력

 

 

PID (Process ID)는 프로세스를 고유하게 식별하는 숫자입니다. 각 프로세스는 운영 체제에서 고유한 PID를 부여받으며, 이를 통해 프로세스 간의 상호작용이 가능해집니다. PID는 프로세스 관리, 디버깅, 리소스 모니터링 등에 사용됩니다. 예를 들어, 특정 포트에서 실행 중인 프로세스를 찾거나 종료할 때 PID를 활용합니다. 

 

 

 

 

맥환경에서 

 

PID 확인하기 : lsof -t -i : 3000

프로세서 종료하기:  kill -9 PID값

 

📌 주의사항

-9프로세스가 파일 저장, 정리 작업 등을 하지 못한 채 즉시 종료됩니다.

→ 마지막 수단으로 사용하는 것이 좋습니다.

가능하면 -15 (기본값, SIGTERM)을 먼저 시도하고, 안 될 때 -9을 쓰는 것이 일반적입니다:

kill [PID] 기본값 SIGTERM (정상 종료 요청)
kill -15 SIGTERM (정상 종료 요청)
kill -9 SIGKILL (강제 종료, 복구 불가)

 

윈도우환경에서

PID 확인하기 : netstat -ano :  finstr:3000

프로세서 종료하기:  taskkill  |F |PID값

 

 

추가 알아두면 좋을 내용 :

  1. 포트별 네트워크 연결 확인:
    • lsof -i :80 명령은 포트 80에서 열려 있는 모든 네트워크 연결을 보여줍니다.
    • 출력 예시:
      COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      nginx   1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN)
      nginx   1234 root 7u IPv6 12346 0t0 TCP *:http (LISTEN)
      
  2. 특정 사용자가 열어 둔 파일 확인:
    • lsof -u <사용자> 명령은 특정 사용자가 열어 둔 모든 파일을 보여줍니다.
    • 예시:
      COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      bash    1234 user cwd DIR 8,1 4096 1234 /home/user
      bash    1234 user rtd DIR 8,1 4096 1234 /
      
  3. 특정 프로세스의 열린 파일 확인:
    • lsof -p <프로세스ID> 명령은 특정 프로세스가 열어 둔 파일을 보여줍니다.
    • 예시:
      COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      bash    1234 user cwd DIR 8,1 4096 1234 /home/user
      bash    1234 user rtd DIR 8,1 4096 1234 /
      
  4. 특정 명령어로 실행 중인 모든 프로세스의 파일 확인:
    • lsof -c <명령어> 명령은 특정 명령어로 실행 중인 모든 프로세스가 열어 둔 파일을 보여줍니다.
    • 예시:
      COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
      nginx   1234 root 6u IPv4 12345 0t0 TCP *:http (LISTEN)
      nginx   1234 root 7u IPv6 12346 0t0 TCP *:http (LISTEN)
      

주의사항:

  • 슈퍼 유저 권한으로 실행해야 합니다.
  • 실행 시간은 파일 시스템 크기에 따라 다를 수 있습니다.

'웹정보' 카테고리의 다른 글

멘탈모델 조사  (0) 2024.10.04
VScode 단축키 정리  (1) 2023.07.16
tag ranking 정보 확인 사이트  (0) 2023.03.19
웹프로그래밍 언어 랭킹  (0) 2023.02.16
싱글 페이지 애플리케이션(single-page application, SPA)  (0) 2022.06.03