Linux에서 프로세스 경로를 보는 명령입니다.
ps -auxwe | grep 24466 ( 24466 is only example )
하지만 솔라리스에서 실행 중인 프로세스의 경로를 볼 수 있는지 조언해 주세요.
그렇다면 Solaris용 ps 구문은 무엇입니까?
답변1
솔라리스와 리눅스에서는 pwdx를 사용할 수 있습니다.
비밀번호<pid_number>
예:
pwdx $$
25711: /export/home/pippo
답변2
실행 중인 프로세스의 절대 경로를 어떻게 알 수 있나요?
"절대 경로"가 실행 중인 바이너리의 전체 경로를 의미하는 경우 이는 설치된 Solaris 11 복사본에서 작동합니다.
pmap PID | grep -v ':' | head 1 | awk '{ print $4 }'
PID
관심 있는 프로세스의 프로세스 ID로 바꾸세요 .
pmap
매핑을 위한 소스 파일의 전체 경로를 포함하여 프로세스의 주소 맵을 내보냅니다. 여기에는 실제 바이너리가 포함됩니다.매핑출력 라인. 출력의 첫 번째 줄에는 프로세스 ID와 프로세스 인수가 포함됩니다. 프로세스 인수만으로는 실행 중인 실행 파일의 전체 경로를 완전히 식별할 수 없습니다. 실제 주소 공간 매핑의 처음 몇 줄은 실제 실행 바이너리의 매핑이며 바이너리의 전체 절대 경로와 함께 나열됩니다.
안타깝게도 해당 정보를 얻으려면 프로세스 맵에 대한 읽기 액세스 권한이 필요합니다. 해당 액세스 권한 없이는 원하는 것을 얻을 수 있는 방법이 없습니다.
/proc/[PID]/path/a.out
편집: 실제 바이너리에 대한 소프트 링크인 Solaris 11에도 있습니다 .
배쉬에서:
bash-4.1$ readlink /proc/$$/path/a.out
/usr/bin/bash
다음 /proc/$$/path/a.out
보다 낫습니다 /proc/self/path/a.out
.
bash-4.1$ readlink /proc/self/path/a.out
/usr/bin/readlink
불행하게도 를 통해 프로세스 맵에 액세스할 수 없으면 pmap
에 액세스할 수 없을 가능성이 높습니다 /proc/[PID]/path/a.out
. 왜냐하면 내 Solaris 11 설치에 대한 권한은 /proc/[PID]/path
모두 500입니다. 소유자와 루트만 해당 디렉토리에 대한 읽기 및 실행 권한을 갖습니다. .
답변3
/usr/ucb/ps auxwwww | grep 6851은 SunOS servername01 5.10 Generic_147440-25 sun4u sparc SUNW,Sun-Fire-V490에서 저에게 도움이 되었습니다.