특정 .so 공유라이브러리를 사용하고 있는
binary 추적하는 명령이 있나요?
반대로 특정binary가 참조하는 공유라이브러리 추적은 가능하잖아요...
ㅠㅠ
1. 일단 특정 process에서 사용중인 .so 목록을 보려면
$> lsof -p 4341
출력 결과에서 /usr/lib/xxx.so.2.1.0 확인
2. /usr/lib/xxx.so.2.1.0을 사용 중인 process들 목록을 보려면
$> fuser /usr/lib/xxx.so.2.1.0
출력 결과 pid뒤 m은 mmapped file이나 공유 라이브러리 의미 다양한 옵션이나 자세한 사용법을 보려면
$> man fuser
ps) ubuntu 9.10에서 test, 다른 환경에서도 가능한지 모름 --;
정말 감사드립니다 ^^ 실행파일마다 참조하는 라이브러리를 일일이 찾고 있었는데 -_-;; 큰 도움이 되었습니다. ^^
실행 중이 아닌 program의 사용 공유 library는
$> ldd /usr/bin/python
.so 를 사용 중인 process는 쉽게 찾을 수 있는데 반해, 실행 중이 아닌 program의 .so 의존성 여부는 해당 linux 배포판의 패키지 관리 시스템에 종속적이고, 패키지 관리 시스템과 별도로 설치한 program은 추적이 힘듭니다. (확신은 못함. --;) 누가 더 좋은 해결책을 댓글로 달아주시겠죠.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
ㅠㅠ
ㅠㅠ
간혹 제가 사용하는 방법
1. 일단 특정 process에서 사용중인 .so 목록을 보려면
출력 결과에서 /usr/lib/xxx.so.2.1.0 확인
2. /usr/lib/xxx.so.2.1.0을 사용 중인 process들 목록을 보려면
출력 결과 pid뒤 m은 mmapped file이나 공유 라이브러리 의미
다양한 옵션이나 자세한 사용법을 보려면
ps) ubuntu 9.10에서 test, 다른 환경에서도 가능한지 모름 --;
^^
정말 감사드립니다 ^^
실행파일마다 참조하는 라이브러리를 일일이 찾고 있었는데 -_-;;
큰 도움이 되었습니다. ^^
참고로
실행 중이 아닌 program의 사용 공유 library는
.so 를 사용 중인 process는 쉽게 찾을 수 있는데 반해, 실행 중이 아닌 program의 .so 의존성 여부는 해당 linux 배포판의 패키지 관리 시스템에 종속적이고, 패키지 관리 시스템과 별도로 설치한 program은 추적이 힘듭니다. (확신은 못함. --;) 누가 더 좋은 해결책을 댓글로 달아주시겠죠.
댓글 달기