본문으로 바로가기

[Linux] 프로세스 실행 파일 경로 찾기

category OS/Linux 2021. 11. 27. 13:55

0. 사용 용도

  • service, systemctl 명령어로 제어 불가능한 경우
  • 불 필요한 포트로 보이나 어떤 프로세스인지 모르는 경우
  • LISTEN 되어 있는 포트인데 어떤 용도인지 모를 때
  • 실행 중인 프로세스인데 실행 경로가 어디인지 모를 경우

1. pid(process id) 찾기

  • 실행 경로를 찾기 위해서는 pid를 알아야 합니다.

1.1. 프로세스 이름을 아는 경우

[형식]

# ps -ef | grep 프로세스명 | grep -v grep

 

[예시]

//2번째 행의 pid를 확인(745)
# ps -ef | grep rpcbind | grep -v grep
rpc        745     1  0 11월23 ?      00:00:00 /sbin/rpcbind -w

# ps -ef | grep rpcbind | grep -v grep | awk '{print $2}'
745

1.2. 프로세스 LISTEN 포트를 아는 경우

[형식]

# netstat -ntap | grep LISTEN | grep 포트번호

 

[예시]

//마지막 행에 pid를 확인(745)
# netstat -ntap | grep LISTEN | grep 111
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      745/rpcbind
tcp6       0      0 :::111                  :::*                    LISTEN      745/rpcbind

2. pid로 프로세스 실행 파일 경로 찾기

  • 위에서 구한 pid를 이용해 실행 경로를 파악합니다.

[형식]

# ls -al /proc/프로세스ID | grep exe

 

[예시]

# ls -al /proc/745 | grep exe
lrwxrwxrwx.   1 root root 0 11월 24 20:59 exe -> /usr/sbin/rpcbind

3. pid로 프로세스 현재 작업 디렉터리(CWD) 찾기

[예시]

# ls -al /proc/21018 | grep cwd
lrwxrwxrwx.   1 mysql mysql 0 11월 24 21:38 cwd -> /usr/local/mariadb-10.0.31/data