답변1
당신은 그것을 사용할 수 있습니다lsof
(거의 모든 Unix 변형에 적용되지만 일반적으로 기본 설치의 일부는 아닙니다.) 프로세스에서 사용되는 모든 파일을 나열합니다. "사용됨"에는 열린 파일 설명자뿐 아니라 프로세스가 실행 중인 실행 파일과 같이 밀접하게 관련된 개념도 포함됩니다. 실행 파일은 txt
FD 열에 있습니다.알려지지 않은 역사적 이유.
$ lsof -p1234 | grep txt
a.out 1234 user15964 txt REG 253,0 34567 /path/to/a.out
(합성산출물)
Solaris 및 Linux에는 보다 직접적인 접근 방식이 있습니다.프로세스 파일 시스템실행 중인 실행 파일을 포함하여 각 프로세스에 대한 정보를 제공합니다. (적어도 Linux에서는 여기 lsof
에서 정보를 얻을 수 있습니다.)
$ ls -l /proc/1234/exe
lrwxrwxrwx 1 root root 0 Feb 30 34:56 /proc/1234/exe -> /path/to/a.out
특정 실행 파일을 실행하는 프로세스를 찾고 있다면 다음을 실행하세요.퓨저.
$ fuser /path/to/a.out
/path/to/a.out: 1234e 1239e
답변2
일반적인 대답은 없습니다. 최신 Linux에서는 /proc/$PID
숫자 프로세스 ID가 어디에 있는지 확인할 수 있습니다 . 출력에서 얻을 $PID
수 있습니다 .top
ls -l /proc/$PID/exe
exe
심볼릭 링크의 위치가 표시됩니다 . 이는 실행 파일의 전체 경로입니다 a.out
.