프로세스가 어디서 호출되었는지 어떻게 알 수 있나요?

프로세스가 어디서 호출되었는지 어떻게 알 수 있나요?

엄격한 복제를 통해 다른 폴더에서 동일한 스크립트의 다른 구성을 실행하고 있는데 외부 터미널에서 실행 중인 프로세스의 소스 폴더를 알 수 있는지 궁금합니다.

  • pyjournal1/source/script.py, , pyjournal2/source/script.py및 3개의 폴더에서 Python 스크립트를 실행하고 있습니다.pyjournal3/source/script.py
  • 내가 보니 htop그것들은 모두 똑같아 보였습니다. " python3 script.py" 그러나 어느 것인지 식별할 수 없었습니다.
  • realpathreadlink아시다시피 of는 나에게 "호출 폴더" 경로가 아닌 Python 경로를 제공했습니다.

어떤 아이디어가 있나요?

정말 고마워요, 에드워드

답변1

먼저 프로세스의 PID를 가져옵니다.

$ pgrep <proccess>

그런 다음 pwdx를 사용할 수 있습니다.

$ pwdx <PID>

이것/proc방법exepid에 해당하는 디렉토리의 링크가 검사됩니다 .

예를 들어 보겠습니다 update-notifier.

pid를 찾으십시오.15421이 예에서는 다음과 같습니다.

egil@gud:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

심볼릭 링크 찾기:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to `/usr/bin/update-notifier'

감사의 말씀:https://askubuntu.com/a/49030/680673

관련 정보