Да, конечно. Из статьи Wikipedia о библиотеках:
Общая библиотека или общий объект являются файлом, который предназначается, чтобы быть совместно использованным исполняемыми файлами и дальнейшими файлами общих объектов
Другими словами, целая причина, их называют "общими", состоит в том, потому что больше чем один исполняемый файл использует их.
Из документов для RTLD_LOCAL
:
Символы, определенные в этой библиотеке, не сделаны доступными для разрешения ссылок во впоследствии загруженных библиотеках.
RTLD_LOCAL
флаг к dlopen()
просто указывает на это когда A1
загрузки lib1
, если это определяет, скажем, функцию f1()
, и затем A1
загрузки lib2
, это не может использовать f1()
от lib1
, потому что это было загружено локальное.
Обычно, переменные среды отличаются если прогоны программы от крона, таким образом, ssh-add
не находит ssh-агента.
Назовите вместо этого следующий сценарий, который пробует все агенты и набор $SSH_AUTH_SOCK
правильно:
#!/bin/sh
for agent in /tmp/ssh-*/agent.*; do
export SSH_AUTH_SOCK=$agent
if ssh-add -l 2>&1 > /dev/null; then
# working ssh-agent found
ssh-add -D # delete all identities
fi
done
Может быть, достаточно добавить
AddKeysToAgent yes
в .ssh / config
клиента?
SSH_AUTH_SOCK
когдаssh-add -D
работы? – Gilles 'SO- stop being evil' 31.07.2013, 02:03