프로세스가 명령되는 위치(어느 디렉터리에서)를 어떻게 알 수 있나요?

프로세스가 명령되는 위치(어느 디렉터리에서)를 어떻게 알 수 있나요?

어떤 디렉터리에서 시작하라는 명령을 받은 시뮬레이션을 실행하고 있는데 어느 디렉터리에서 시뮬레이션을 명령했는지 기억나지 않습니다. 시뮬레이션을 실행하기 위해 Python을 사용하고 있으므로

ps aux | grep PID

실행 중인 프로그램이 있는 위치만 표시됩니다. (/usr/bin/python). 하지만 맨 처음부터 명령이 실행되는 위치, 내가 실행 중인 파일이 어디에 있는지 알고 싶습니다.

도움이 되는 의견을 주시면 정말 감사하겠습니다!

감사해요 :)

답변1

history실제로 어떤 명령을 사용했는지 확인하기 위해 해당 명령을 사용하고 싶습니까 ?

답변2

Python 스크립트의 경로를 보려면 일반적으로 다음을 사용하여 볼 수 있습니다 ps( w필요한 경우 , wide, 옵션 사용).

~% ps ugxw | grep python
romano    2136  0.0  0.2  10524  4132 ?        S    09:13   0:00 python /home/romano/software/wallpap/bg_slideshow.py
romano    5839  0.0  0.0   4440   832 pts/1    S+   10:00   0:00 grep python

예를 들어 프로세스 2136은 스크립트입니다 /home/romano/software/wallpap/bg_slideshow.py. 프로세스의 작업 디렉토리가 무엇인지 알고 싶다면 다음을 수행하십시오.

~% ls -l /proc/2136/cwd
lrwxrwxrwx 1 romano romano 0 Nov 11 10:04 /proc/2136/cwd -> /home/romano

프로세스가 /home/romano현재 디렉터리로 실행 중입니다.

파일에는 /proc/2136/cmdline전체 명령줄 사양이 있습니다. --- 에서 볼 수 있는 것과 동일 ps하며 명령과 인수는 0 값 바이트로 구분됩니다(공백을 보존하기 위해). 다음을 사용하여 터미널에서 볼 수 있습니다.

% cat /proc/2136/cmdline | tr "\0" " "
python /home/romano/software/wallpap/bg_slideshow.py % 

여기서 "tr"은 발견된 각 "nul" 문자에 대해 공백을 인쇄합니다. (끝에 있는 가짜 %는 파일이 개행 문자로 끝나지 않기 때문입니다).

/proc 파일 시스템은 정말 유용한 도구입니다. 전체 문서는 약간 "어렵지만" 이에 대한 링크가 있으면 유용한 경우가 많습니다.https://www.kernel.org/doc/Documentation/filesystems/proc.txt

답변3

명령 을 사용하십시오 which. 예를 들어, which ifconfigifconfig 명령의 위치를 ​​출력합니다.

관련 정보