2014-04-01 2 views
3

어딘가에 마침내 내가 원하는 것을 얻지 못한 채로 검색합니다.현재 바이너리가 실행되는 경로를 찾는 방법은 무엇입니까?

저는 리눅스 시스템에 임베디드 보드를 사용하고 있습니다. 그리고 많은 사용자가 telnet에 의해 액세스합니다. 따라서 각 사용자는 어딘가에 바이너리를 복사하고 ./binary처럼 실행한다고 가정합니다. 따라서이 프로세스는 단순히 ps 명령으로 실행되지만 실행중인 곳에서는 알 수 없습니다.

어딘가에 (내가 잘못 아니에요 경우)하지만 내 이해에 따라 which 명령을 사용하여이 현재 실행 여부를 여부 which 명령 바이너리의 경로를 찾을 것을 발견했다.

그리고 여러 사용자가 서로 다른 경로에서 같은 바이너리를 복사하면 어떻게 될까요?

다른 솔루션을 보니 readlink이지만 내 타겟 보드에서는 busybox binary으로 제한되어 있습니다. 그래서 readlink이 없습니다.

하나의 제한된 기능과 바이너리를 포함하는 내 보드 때문에 손님 리눅스의

file /proc/"proess id"/exe 그러나 여기 file 명령 존재하지 같은 다른 솔루션입니다.

다른 해결책이 있습니까?

+2

당신은'->'뒤에'ls -l'을 사용하고 구성 요소를 추출 할 수 있습니다. – user3159253

+1

유권자를 종료하려면 도구에 관한 것이 아닙니다. http://unix.stackexchange.com/ –

+0

@ user3159253'readlink'는'ls' 출력을 파싱하는 것보다 낫습니다 ... – twalberg

답변

2

시도 ls -l /proc/"proess id"/exe GNU coreutils의 ls 유틸리티는 -l 옵션과 링크를 표시하지만 ls에 대한 정확한 정보가 busybox입니다.

+0

정확하게 작동합니다 ... 고맙습니다. –

+0

'readlink/proc//exe'는'ls' 출력을 해석하는 것보다 낫습니다 ... – twalberg

+0

...'readlink'가있을 것입니다. – osgx

관련 문제