#1
|
|||
|
|||
LD_LIBRARY_PATН & init.d $ glibc
Maxim Gribanov написал(а) к All в Mar 19 10:34:56 по местному времени:
Привет, All! Друзья, подскажите как сделать: Мне нужно запустить прогу, она адекватно работает под glibc 2.10 не старше, пересобирать не предлагать. Закрытое ПО. Запускаю так: LDLIBRARYPATН=/opt/xxx/glibc(путь к libc2.10) /opt/xxx/glibc/ld-linux.so.2 /opt/xxx(путь к проге) - Все работает. Но как мне прописать сий сценарий в init.d скрипте? LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1:$LD_LIBRARYPATН" LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1/ld-linux.so.2:$LD_LIBRARYPATН" export LDLIBRARYPATН Не помогает... (( С наилучшими пожеланиями, Maxim. --- -Пиши, старик, пиши! Мы тебя не покинем. |
#2
|
|||
|
|||
Re: LD_LIBRARY_PATН & init.d $ glibc
Eugene Lamskoy написал(а) к Maxim Gribanov в Mar 19 13:26:16 по местному времени:
Нello Maxim! 19 мар 19 10:34, you wrote to all: MG> Друзья, подскажите как сделать: Мне нужно запустить прогу, она MG> адекватно работает под glibc 2.10 не старше, пересобирать не MG> предлагать. Закрытое ПО. Запускаю так: MG> LDLIBRARYPATН=/opt/xxx/glibc(путь к libc2.10) MG> /opt/xxx/glibc/ld-linux.so.2 /opt/xxx(путь к проге) - Все работает. MG> Но как мне прописать сий сценарий в init.d скрипте? MG> LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1:$LD_LIBRARYPATН" MG> LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1/ld-linux.so.2:$LD_LIBRARYPATН" MG> export LDLIBRARYPATН MG> Не помогает... (( Попробуй LDPRELOAD вместо LD_LIBRARYPATН LD_PRELOAD=/opt/some/lib.so /some/bin Eugene --- GoldED+/LNX 1.1.5-b20170303 |
#3
|
|||
|
|||
LBRARY_PATН ATН & init.d $ glibc
Maxim Gribanov написал(а) к Eugene Lamskoy в Mar 19 15:18:02 по местному времени:
Привет, Eugene! 20 мар 19 13:26, Eugene Lamskoy -> Maxim Gribanov: EL> Нello Maxim! EL> 19 мар 19 10:34, you wrote to all: MG>> Друзья, подскажите как сделать: Мне нужно запустить прогу, она MG>> адекватно работает под glibc 2.10 не старше, пересобирать не MG>> предлагать. Закрытое ПО. Запускаю так: MG>> LDLIBRARYPATН=/opt/xxx/glibc(путь к libc2.10) MG>> /opt/xxx/glibc/ld-linux.so.2 /opt/xxx(путь к проге) - Все MG>> работает. MG>> Но как мне прописать сий сценарий в init.d скрипте? MG>> LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1:$LD_LIBRARYPATН" MG>> LDLIBRARY_PATН="/opt/xxx/glibc-2.10.1/ld-linux.so.2:$LD_LIBRARY MG>> PATН" export LDLIBRARYPATН MG>> Не помогает... (( EL> Попробуй LDPRELOAD вместо LD_LIBRARYPATН EL> LD_PRELOAD=/opt/some/lib.so /some/bin Была бы какая то друга либо вопросов бы не было, но это glibc Здесь сначала устанавливается переменная окружения LDLIBRARYPATН=/opt/xxx/glibc-2.10.1, которая говорит, что библиотеки должны искаться в папке /opt/xxx/glibc-2.10.1. Затем запускается динамический загрузчик ld-linux.so.2(из этой же версии glibc) , который загружает программу вместе с необходимыми ей библиотеками. LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc/ld-linux.so.2 /opt/xxx/(путь к проге) Запукает нормально. Также работает вариант /opt/xxx/glibc-2.10.1/ld-linux.so.2 --library-path /opt/xxx/glibc-2.10.1 /opt/xxx/путь к проге, в этом варианте вызывается динамический загрузчик ld-linux.so.2 (из glibc2.10.1) и ему укахывается путь к либам (glibc2.10.1) По сути одно и тоже. Примера для делаю скрипт с содержимым: #! /bin/bash LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx Запускаю все работает как надо, но в идеале хотелось бы написать полноценный init.d скрипт с возможностью запуска, остановки и пр. Если же делаю такой скрипт: (запускаю прогу отдельной строкой) #! /bin/bash LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx Терплю фиаско. Как мне поступть? С наилучшими пожеланиями, Maxim. --- -Пиши, старик, пиши! Мы тебя не покинем. |
#4
|
|||
|
|||
Re: LBRARY_PATН ATН & init.d $ glibc
Eugene Lamskoy написал(а) к Maxim Gribanov в Mar 19 17:50:08 по местному времени:
Нello Maxim! 20 мар 19 15:18, you wrote to me: MG> #! /bin/bash MG> LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 MG> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx MG> Терплю фиаско. Как мне поступть? по идее надо export LDLIBRARY_PATН= вместо LD_LIBRARYPATН= в этом случае но это не очень элегантное решение. я бы враппер написал такой: +x /usr/local/bin/soft.sh: #!/bin/bash LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/bin/soft "$@" а уже в инит скрипте вызывал бы враппер с нужными аргументами /usr/local/bin/soft.sh arg1 arg2 arg100500 $@ передаст аргументы, с которыми вызван враппер, уже конечной софтине PROFIT! Eugene --- GoldED+/LNX 1.1.5-b20170303 |
#5
|
|||
|
|||
LY_PATН ATН ATН & init.d $ glibc
Maxim Gribanov написал(а) к Eugene Lamskoy в Mar 19 14:30:00 по местному времени:
Привет, Eugene! 20 мар 19 17:50, Eugene Lamskoy -> Maxim Gribanov: EL> Нello Maxim! EL> 20 мар 19 15:18, you wrote to me: MG>> #! /bin/bash MG>> LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 MG>> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx MG>> Терплю фиаско. Как мне поступть? EL> по идее надо export LDLIBRARY_PATН= вместо LD_LIBRARYPATН= в этом EL> случае но это не очень элегантное решение. EL> я бы враппер написал такой: EL> +x /usr/local/bin/soft.sh: EL> #!/bin/bash EL> LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 EL> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/bin/soft "$@" EL> а уже в инит скрипте вызывал бы враппер с нужными аргументами EL> /usr/local/bin/soft.sh arg1 arg2 arg100500 EL> $@ передаст аргументы, с которыми вызван враппер, уже конечной софтине EL> PROFIT! Спасибо, но в такой реализации не будет процесса программы xxx, а будет запущен процесс ld-linux.so.2 Программу запустить удасться, остановить тоже, а вот как отследить ее статаус? Это сервер баз данных, и баз несколько, соответственно и процессов. С наилучшими пожеланиями, Maxim. --- -Пиши, старик, пиши! Мы тебя не покинем. |
#6
|
|||
|
|||
LY_PATН ATН ATН & init.d $ glibc
Maxim Gribanov написал(а) к Eugene Lamskoy в Mar 19 14:50:24 по местному времени:
Привет, Eugene! 20 мар 19 17:50, Eugene Lamskoy -> Maxim Gribanov: EL> Нello Maxim! EL> 20 мар 19 15:18, you wrote to me: MG>> #! /bin/bash MG>> LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 MG>> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx MG>> Терплю фиаско. Как мне поступть? EL> по идее надо export LDLIBRARY_PATН= вместо LD_LIBRARYPATН= в этом EL> случае но это не очень элегантное решение. EL> я бы враппер написал такой: EL> +x /usr/local/bin/soft.sh: EL> #!/bin/bash EL> LDLIBRARYPATН=/opt/xxx/glibc-2.10.1 EL> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/bin/soft "$@" EL> а уже в инит скрипте вызывал бы враппер с нужными аргументами EL> /usr/local/bin/soft.sh arg1 arg2 arg100500 EL> $@ передаст аргументы, с которыми вызван враппер, уже конечной софтине EL> PROFIT! Спасибо, доехал ))) Все работает! С наилучшими пожеланиями, Maxim. --- -Пиши, старик, пиши! Мы тебя не покинем. |