forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.LINUX.CHAINIK

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 20.03.2019, 14:52
Maxim Gribanov
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 20.03.2019, 15:42
Eugene Lamskoy
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 20.03.2019, 17:02
Maxim Gribanov
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 20.03.2019, 20:12
Eugene Lamskoy
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 21.03.2019, 15:42
Maxim Gribanov
Guest
 
Сообщений: n/a
По умолчанию 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  
Старый 21.03.2019, 16:22
Maxim Gribanov
Guest
 
Сообщений: n/a
По умолчанию 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.

--- -Пиши, старик, пиши! Мы тебя не покинем.
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 15:43. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot