de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Russ
Russ
Вопрос

Ошибка сценария Bash при запуске через cron, не может найти библиотеку Libboost

Я запускаю сценарий bash, который использует libboost для хранения статистической модели в памяти. Когда я запускаю скрипт непосредственно из командной строки (то есть: # /pylda/exec-test.sh), он отлично работает. Однако, когда он запускается на задании cron, я получаю следующую ошибку:

"/root/pylda/src/infer: error while loading shared libraries: libboost_program_options.so.1.46.1: cannot open shared object file: No such file or directory"

Как cron ведет себя по-разному? Должна ли быть установлена ​​переменная среды? Насколько я знаю, это cron как корень.

благодаря

0 2011-10-27T14:32:24+00:00 4
Donald Miner
Donald Miner
Редактировал вопрос 27-го октября 2011 в 2:34
Программирование
cron
bash
boost
Michael Krelin - hacker
27-го октября 2011 в 2:34
2011-10-27T14:34:05+00:00
Дополнительно
Источник
Редактировать
#56789796

Проверьте переменную среды LD_LIBRARY_PATH ?

2
0
JRFerguson
27-го октября 2011 в 6:47
2011-10-27T18:47:49+00:00
Дополнительно
Источник
Редактировать
#56789798

Как общий комментарий, не полагайтесь на наличие переменных окружения, которые вы обычно используете во время интерактивного сеанса (входа), когда вы cron () сценарий. Некоторые реализации определяют только минимальную среду. Вам будет полезно включить все, что вам нужно в ваш скрипт, либо путем прямого объявления в нем, либо путем поиска файла необходимых вам переменных.

1
0
Christian COMMARMOND
7-го августа 2012 в 2:47
2012-08-07T14:47:32+00:00
Дополнительно
Источник
Редактировать
#56789799

Даже если это старо, я думаю, что этот ответ может помочь другим.

Вот пример строки моего crontab:

0 3 * * 1,2,4,5,6 (. /home/oracle/.profile; export ORACLE_SID=myDB;. myscript.ksh parm1 parm2; ) 1>/dev/null 2>&1

Which: Execute the profile of my user (oracle), so I am sure I have the good envs:. /home/oracle/.profile Set a local env value: export ORACLE_SID=myDB Executes the script with its params:. myscript.ksh parm1 parm2 (nota: the dot because the script does not have the x flag) Does not send email: 1>/dev/null 2>&1 (My script sends the needed emails with formatting).

Используйте (), чтобы заключить список команд и точку с запятой (;) для разделения команд.

Надеюсь, что это может помочь ...

1
0
0xd
27-го октября 2011 в 2:35
2011-10-27T14:35:15+00:00
Дополнительно
Источник
Редактировать
#56789797

Попробуйте установить PATH var на скрипт Cron

# /etc/cron.d/something
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0
0
Похожие сообщества 1
pro.bash
pro.bash
524 пользователей
All about Nix shells, signals, processes and development in general.
Открыть telegram
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 4 дня назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
© de-vraag 2022
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией