Intereting Posts
Столкновение адресов Fedora 15 на Compaq CQ41? Kexec сразу после установки Kickstart (где cmdline?) как запустить задание cron с конкретным пользователем? включить i915.preliminary initial_hw_support = 1 в Fedora Как я могу автоматически привязывать монтирование к загрузке в домашнем каталоге, не зашифрованном зашифрованным корнем? получение содержимого из файла .dmg или .img Установить файловую систему только для чтения и перенаправить записи в ОЗУ? Как настроить файловую систему + LVM для эффективного использования SSD? Может ли переименование сетевого устройства вызвать условия гонки? Как удалить все старые ядра, кроме двух последних MD5SUM для скопированного файла Можете ли вы изменить формат timestamp для команды history на tcsh Объединяйте строки из разных файлов, если шаблон сопоставляется В чем разница между «отсутствием режима кэширования страниц» и «приемом кэша накопителя». напишите ». Инвертировать цвет конкретного окна на linux mint

Скрипт, запущенный daemon, не может найти общую библиотеку

Я расширяю snmpd с помощью директивы extend для вызова некоторых скриптов для некоторых OID. Сам скрипт вызывает специальную вспомогательную программу, которая получает экстракты некоторого значения. Помощник работает нормально, когда он запускается вручную из командной строки, но когда я вызываю его в скрипте, он не работает, потому что он не может найти наши пользовательские зависимости в /cots/boost-1.55/lib . Я добавил /cots/boost-1.55/lib в /etc/ld.conf.d/cots.conf и после запуска ldconfig проверил, что библиотеки повышения находятся в кеше. Сценарий в основном содержит

 result=`callHelper with arguments` echo $result 

и результат захватывается snmpd и возвращается. Когда я запрашиваю OID, я получаю сообщение об ошибке, что он не может найти внешнюю библиотеку boost.

Мне удалось заставить его работать, вызвав su user в скрипте

 result=`su user "callHelper with arguments"` echo $result 

Может ли кто-нибудь объяснить, почему кеш ld корректен при использовании su , но не тогда, когда скрипт программы напрямую? Я думаю, что это связано с тем, что snmpd является системным сервисом, и, следовательно, среда отличается, но ldconfig не является частью среды.

Вы проверяете, находится ли ваша библиотека в вашем поиске PATH. Выполните следующее в TERM, чтобы проверить свой глобальный PATH. Путь устанавливается с использованием .profile not config.

 echo $PATH$ 

чтобы увидеть ваш путь поиска. Чтобы явно добавить вашу библиотеку в ваш путь поиска, используйте команду «set» в Term. Знак доллара означает, что это глобальный вызов оболочки. Пытаться

 set PATH=$PATH$;/cots/boost-1.55/lib 

Точка с запятой сообщает оболочке начать новый путь поиска. Однако это работает только в том случае, если существует путь поиска. Конечно, он вилки на моей машине, как с

 set PATH=$PATH$;/cots/boost-1.55/lib bash: /cots/boost-1.55/lib: -forks No such file or direc 

Тори!