Computer Science/Operating System
Linux | netstat, lsof, ps를 이용한 프로세스 확인 방법
YIAN
2022. 1. 3. 23:56
🥂 요구사항 (Requiredments)
AWS EC2 서버에 접속해서 리눅스 명령어로 확인하고 작업해야 할 일이 있었습니다. 리눅스 관련 명령어는 기억이 나지 않아서 매번 찾아서 사용했는데, 본 포스팅에서 자주 사용하는 명령어를 일부 정리해 두려고 합니다.
🍧 해결방안 (Solution or Next Step)
요약
# 클라이언트 접속 요청 대기 중인 프로그램 조회
$ netstat -nap | grep LISTEN
# 열려있는 상태의 포트와 프로그램 조회
$ netstat -tnlp
# 특정 포트가 클라이언트 접속 요청 대기 중인지 조회
$ lsof -i :8080 | grep LISTEN
# 특정 포트 범위 안에서 클라이언트 접속 요청 대기 중인지 조회
$ lsof -i:8080-11600
# 특정 조건 프로세스 조회
$ ps -ef | grep java
참고로 명령어 사용 시 맨 앞에 '$' 표시는 같이 사용하지 않습니다. 코드 블록이 해당 코드를 하이라이팅해 주지 않아서 Bash라는 것을 나타내기 위해 표시한 것입니다. 하단의 내용에서는 다음 3가지 명령어를 간략하게 살펴보겠습니다.
- netstat
- lsof
- ps
1. netstat 관련 명령어
1) 클라이언트 접속 요청 대기 중인 프로그램 조회
(1) 명령어와 사용 방법
$ netstat -nap | grep LISTEN
- netstat [옵션] | grep [상태값]
(2) 출력화면 예시
2) 열려있는 포트와 프로그램 조회
(1) 명령어와 사용 방법
$ netstat -tnlp
- netstat [옵션]
(2) 출력화면 예시
3) 기타 명령어
- 본 포스팅에서는 어떤 옵션이 있는지만 확인하겠습니다. 참고해 주세요.
$ netstat --help
2. lsof 관련 명령어
1) 특정 포트가 클라이언트 접속 요청 대기 중인지 조회
(1) 명령어와 사용 방법
$ lsof -i :8080 | grep LISTEN
- lsof -i :[포트] | grep [상태값]
- 참고: l은 L의 소문자입니다.
(2) 출력화면 예시
- 해당 결과가 있을 경우: 거의 다 가리긴 했지만, PID, 포트 등의 정보를 알 수 있습니다.
- 해당 결과가 없을 경우: 아무것도 뜨지 않습니다.
2) 특정 포트 범위 안에서 클라이언트 접속 요청 대기 중인지 조회
(1) 명령어와 사용 방법
$ lsof -i:8080-11600
- lsof -i:[시작 포트]-[끝 포트]
(2) 출력화면 예시
3) 기타 명령어
- 본 포스팅에서는 어떤 옵션이 있는지만 확인하겠습니다. 참고해 주세요.
$ lsof --help
3. ps 관련 명령어
1) 특정 조건 프로세스 조희
(1) 명령어와 사용 방법
$ ps -ef | grep java
- ps -ef | grep [조건]
(2) 출력화면 예시
2) 기타 명령어
- 본 포스팅에서는 어떤 옵션이 있는지만 확인하겠습니다. 참고해 주세요.
$ ps --help
$ ps --help all
🍓 회고 (Retrospective)
실무에 뛰어든 지 얼마 안 됐을 때, 리눅스 명령어에 관해 공부했었는데 자주 사용하지 않으면 금방 잊어버리기 쉬운 것 같습니다. 조금씩 메모해두었던 명령어들을 기록했습니다. 다른 글에서 netstat, lsof, ps를 자세히 다뤄보려고 합니다. 주니어 개발자의 성장을 위한 피드백은 언제나 환영입니다.
📚 참고자료 (References)
- Linux-Console.net, "특정 포트에서 수신 대기하는 프로세스를 찾는 3가지 방법", https://ko.linux-console.net/?p=2160, (2022.01.03.)