2013-08-20 46 views
8

Tôi có một dịch vụ trong Linux.Dịch vụ Linux không thể tải đường dẫn thư viện trong /etc/ld.so.conf.d

Khi tôi bắt đầu sử dụng dịch vụ bắt đầu hoặc bắt đầu trong init.d. Nó không thể tải cấu hình đã lưu trữ trong /etc/ld.so.conf.d/. Vì vậy, một số quá trình tải đường dẫn thư viện trong /etc/ld.so.conf.d/. không thể được khởi chạy bởi dịch vụ này.

Nhưng khi tôi chạy tập lệnh servcie này trong trình bao, nó hoạt động tốt.

Cách tải đường dẫn thư viện trong /etc/ld.so.conf.d/?

Cảm ơn rất nhiều.

+0

[Vấn đề là dịch vụ xóa tất cả các biến môi trường nhưng TERM, PATH và LANG] (http://unix.stackexchange.com/a/44378) Liên kết hữu ích giúp tại sao dịch vụ không hoạt động. – JinruiDu

Trả lời

21

Bạn có chạy ldconfig (làm gốc) gần đây không? Có một bộ nhớ cache thư viện được cập nhật bởi chương trình đó và nếu bạn đã cập nhật tệp trong /etc/ld.so.conf.d mà không chạy ldconfig, dữ liệu bộ nhớ cache có thể lỗi thời.

+0

Bạn có nghĩa là tôi phải chạy ldconfig trước khi bắt đầu dịch vụ? Tôi sẽ có một thử. – JinruiDu

+2

Không, bạn phải chạy 'ldconfig' sau khi chỉnh sửa'/etc/ld.so.conf' hoặc một trong các tệp trong '/ etc/ld.so.conf.d'. Sau đó, giả sử bạn không thay đổi các tệp đó, bạn thường không cần phải chạy lại 'ldconfig'. –

+1

Nó không hoạt động. Tôi chạy ** ldconfig ** trước ** dịch vụ myserv restart **. Nó vẫn không chạy đúng. Tôi phải 'LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/usr/local/myprog/lib xuất LD_LIBRARY_PATH ' Sau này, nó có thể thực hiện – JinruiDu