답변:
% sudo ls -l /proc/PID/exe
예 :
% ps -auxwe | 그렙 24466 루트 24466 0.0 0.0 1476280? S 2009 0:00 감독 sshd % sudo ls -l / proc / 24466 / exe lrwxrwxrwx 1 루트 루트 0 2 월 1 일 18:05 / proc / 24466 / exe-> /package/admin/daemontools-0.76/command/supervise
ls: cannot read symbolic link /proc/28783/exe: Permission denied
실행하는 것이 아니라 자신이 아닌 ls
프로세스의 프로세스 정보에 액세스하는 것입니다. 필자의 경우 / proc에 나열된 모든 프로세스의 약 97 %가 루트 프로세스이고 다른 프로세스는 11 명의 다른 사용자에게 배포됩니다.
사용하다:
pwdx $pid
이것은 절대 경로가 아닌 pid의 현재 작업 디렉토리를 제공합니다.
일반적으로 which
명령은 쉘에서 호출되는 것을 알려줍니다.
#> which vlc
/usr/bin/vlc
$pid
?"라는 질문에만 답합니다. 수정 된 게시물은 여전히 질문에 대답하지 않습니다. which
단지 "명령이 경로에 있다면 무엇입니까?"
pwdx
redhat x64 6.3의 pid에 따라 프로세스의 실행 가능한 프로그램의 절대 경로를 반환하십시오.
한 가지 방법은 ps -ef입니다
ps auxwwwe
출처:
https://serverfault.com/questions/62322/getting-full-path-of- executables-in-ps-auxwww-output
lsof는 옵션입니다. 다음과 같은 것을 시도해 볼 수 있습니다.
lsof -p PROCESS_ID
실행 파일의 실제 위치를 포함하여 프로세스에서 연 모든 파일이 나열됩니다. 그런 다음 원하는 정보를 찾기 위해 awk, cut, grep 등을 더 추가 할 수 있습니다.
예를 들어, 'java'프로세스의 출처를 식별하기 위해 다음 명령을 실행했습니다.
lsof -p 12345 | awk '{print $ NF}'| grep 'java $'
ls
명령 을 실행하기 위해 수퍼 유저 일 필요가 없습니다 .