2013-08-20 1 views
8

리눅스에 서비스가 있습니다.리눅스 서비스가 /etc/ld.so.conf.d에 라이브러리 경로를로드 할 수 없습니다.

시작할 때 init.d에서 서비스 시작 또는 시작을 사용하십시오. /etc/ld.so.conf.d/에 저장된 config를로드 할 수 없습니다. 그래서 /etc/ld.so.conf.d/에 라이브러리 경로를로드하는 프로세스. 이 서비스로 시작할 수 없습니다.

그러나 쉘에서이 servcie 스크립트를 실행할 때 제대로 작동합니다.

/etc/ld.so.conf.d/에서 라이브러리 경로를로드하는 방법은 무엇입니까?

고마워요.

+0

[서비스는 TERM, PATH 및 LANG 이외의 모든 환경 변수를 제거합니다] (http://unix.stackexchange.com/a/44378) 서비스가 작동하지 않는 유용한 링크 도움말. – JinruiDu

답변

21

ldconfig (근원)을 최근에 실행 했습니까? 해당 프로그램에 의해 업데이트 된 공유 라이브러리 캐시가 있으며 을 실행하지 않고 /etc/ld.so.conf.d의 파일을 업데이트 한 경우 캐시 데이터가 오래되었을 수 있습니다.

+0

서비스를 시작하기 전에 ldconfig를 실행해야한다는 의미입니까? 나는 시도 할 것이다. – JinruiDu

+2

아니요,'/ etc/ld.so.conf' 파일이나'/ etc/ld.so.conf.d' 파일 중 하나를 편집 한 후에'ldconfig'를 실행해야합니다. 그 후, 당신이 그 파일들을 변경하지 않는다고 가정하면, 당신은 보통'ldconfig'를 재실행 할 필요가 없습니다. –

+1

작동하지 않습니다. ** 서비스 myserv를 다시 시작하기 전에 ** ldconfig **를 실행합니다 **. 여전히 올바르게 실행되지 않습니다. 내가 에있는'LD_LIBRARY_PATH = $ LD_LIBRARY_PATH :/usr/지방/MYPROG/lib에 수출 LD_LIBRARY_PATH이 후 ' , 그것은 – JinruiDu

관련 문제