필요한 것: 현재 실행 중인 모든 실행 파일의 전체 경로 목록입니다.
이 같은:
1234 /전체/경로/대상/실행 가능 4567 /전체/경로/to/실행 가능2
다음을 사용하면 UNIX95= ps -exo pid,comm
PID와 다음과 같은 명령이 포함된 목록을 얻을 수 있습니다.
11146 /opt/wbem/lbin/cimprovagt 0 4 8 루트 IOTreeModule 8338 /opt/ssh/libexec/sftp-서버 16684 postgres: sfmdb evweb [로컬] 유휴 2518 /usr/sbin/stm/uut/bin/tools/monitor/WbemWrapperMonitor 2264 /usr/sbin/psb/bin/diagtxd 8340 -sh 7772 SSHD: 루트@pts/0 8333 sshd: 루트@pts/1 7777 /opt/ssh/libexec/sftp-서버
이것은 내가 사용할 수 있는 것과 비슷 ps
하지만 충분하지 않습니다.
- 일부 행에는 전체 경로가 포함되어 있지 않습니다(분명히 전체 경로를 사용하여 시작되지 않았기 때문입니다).
- 실행 파일 이름 뒤에 추가 데이터(문자열을 분할할 수 없도록 이름에 공백이 있는 실행 파일을 지원해야 함)
그래서 나는 그것이 ps
나에게 전혀 도움이 되지 않을 것이라고 결론을 내렸습니다.
/proc/{pid}/exe가 실행 파일을 가리키는 Linux의 /proc에 해당하는 것이 있습니까? 그렇지 않다면 이를 수행하는 다른 방법이 있습니까?
미리 감사드립니다.
답변1
pfiles <pid>
실행 파일의 전체 경로를 나열할 수 있습니다.
예:
의 스니펫UNIX95=1 ps -efo pid,comm
1666 cimprovagt
이제 달리자pfiles 1666
1666: /opt/wbem/lbin/cimprovagt
0: S_ISCHR mode:666 dev:64,3 ino:124 uid:2 gid:2 rdev:3,2
flags = O_RDONLY|O_LARGEFILE
file = /dev/null
첫 번째 줄에는 실행 파일의 전체 경로가 표시됩니다. 이것은 내 목적에 충분합니다.