2014-10-03 15 views
2

어떤 프로그램이 LD_PRELOAD의 대상이되는 프로그램인지 알아낼 방법이 있습니까? C/C의 libstuff 라이브러리를 구축 ++과는 사전로드 된 때 때처럼LD_PRELOAD 어떤 프로그램이 대상입니까

LD_PRELOAD=/path/to/libstuff.so ./stuff <args> 

는 대상 프로그램이 stuff 것을 알아낼 수있는 방법은 무엇입니까?

파일이 stuff 인 경우이 작업을 수행하는 안전한 방법입니다. 그런 다음 작업을 수행하고 다른 방법은 lib를 죽게하십시오. 이 IF

을하지 않는 것이 좋습니다 묻는 이유는 내가 LD_PRELOADprogram하지 start-stop-daemon

을 나는이 알고하지 않습니다 목표로 작업을

HOME=$WORK_PATH start-stop-daemon --start --chuid servers --quiet --background --nicelevel -1 --pidfile $PIDFILE --make-pidfile --exec $WORK_PATH/program <args> 

를 얻을 수있다 이처럼 미안하지만 (누군가가 나를 도와 줄 수 있다면) 나에게도 도움이 될 것입니다.

미리 감사드립니다. 이 환경을 수정합니다 env 프로그램을 사용

답변

2

실행 후 exec 호출

start-stop-daemon --start --chuid servers --quiet --background --nicelevel -1 --pidfile $PIDFILE --make-pidfile \ 
    --exec env "LD_PRELOAD=/path/to/libstuff.so" "HOME=$WORK_PATH" "$WORK_PATH/program" <args>