forum.wfido.ru

forum.wfido.ru (http://forum.wfido.ru/index.php)
-   RU.LINUX.CHAINIK (http://forum.wfido.ru/forumdisplay.php?f=84)
-   -   LD_LIBRARY_PATН & init.d $ glibc (http://forum.wfido.ru/showthread.php?t=79784)

Maxim Gribanov 20.03.2019 14:52

LD_LIBRARY_PATН & init.d $ glibc
 
Maxim Gribanov написал(а) к All в Mar 19 10:34:56 по местному времени:

Привет, All!

Друзья, подскажите как сделать: Мне нужно запустить прогу, она адекватно работает под glibc 2.10 не старше, пересобирать не предлагать. Закрытое ПО.
Запускаю так: LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc(путь к libc2.10) /opt/xxx/glibc/ld-linux.so.2 /opt/xxx(путь к проге)
- Все работает.

Но как мне прописать сий сценарий в init.d скрипте?

LD[b]LIBRARY_PATН="/opt/xxx/glibc-2.10.1:$LD_LIBRARY[/b]PATН"
LD[b]LIBRARY_PATН="/opt/xxx/glibc-2.10.1/ld-linux.so.2:$LD_LIBRARY[/b]PATН"
export LD[b]LIBRARY[/b]PATН

Не помогает... ((


С наилучшими пожеланиями, Maxim.

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

Eugene Lamskoy 20.03.2019 15:42

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> LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc(путь к libc2.10)
MG> /opt/xxx/glibc/ld-linux.so.2 /opt/xxx(путь к проге) - Все работает.

MG> Но как мне прописать сий сценарий в init.d скрипте?

MG> LD[b]LIBRARY_PATН="/opt/xxx/glibc-2.10.1:$LD_LIBRARY[/b]PATН"
MG> LD[b]LIBRARY_PATН="/opt/xxx/glibc-2.10.1/ld-linux.so.2:$LD_LIBRARY[/b]PATН"
MG> export LD[b]LIBRARY[/b]PATН

MG> Не помогает... ((

Попробуй LD[b]PRELOAD вместо LD_LIBRARY[/b]PATН

LD_PRELOAD=/opt/some/lib.so /some/bin

Eugene


--- GoldED+/LNX 1.1.5-b20170303

Maxim Gribanov 20.03.2019 17:02

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>> LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc(путь к libc2.10)
MG>> /opt/xxx/glibc/ld-linux.so.2 /opt/xxx(путь к проге) - Все
MG>> работает.

MG>> Но как мне прописать сий сценарий в init.d скрипте?

MG>> LD[b]LIBRARY_PATН="/opt/xxx/glibc-2.10.1:$LD_LIBRARY[/b]PATН"
MG>> LD[b]LIBRARY_PATН="/opt/xxx/glibc-2.10.1/ld-linux.so.2:$LD_LIBRARY[/b]
MG>> PATН" export LD[b]LIBRARY[/b]PATН

MG>> Не помогает... ((

EL> Попробуй LD[b]PRELOAD вместо LD_LIBRARY[/b]PATН

EL> LD_PRELOAD=/opt/some/lib.so /some/bin

Была бы какая то друга либо вопросов бы не было, но это glibc

Здесь сначала устанавливается переменная окружения LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc-2.10.1, которая говорит, что библиотеки должны искаться в папке /opt/xxx/glibc-2.10.1. Затем запускается динамический загрузчик ld-linux.so.2(из этой же версии glibc) , который загружает программу вместе с необходимыми ей библиотеками.

LD[b]LIBRARY[/b]PATН=/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
LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx

Запускаю все работает как надо, но в идеале хотелось бы написать полноценный init.d скрипт с возможностью запуска, остановки и пр.

Если же делаю такой скрипт: (запускаю прогу отдельной строкой)
#! /bin/bash
LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc-2.10.1 /opt/xxx/glibc-2.10.1/ld-linux.so.2
/opt/xxx/bin/xxx

Терплю фиаско. Как мне поступть?

С наилучшими пожеланиями, Maxim.

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

Eugene Lamskoy 20.03.2019 20:12

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> LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc-2.10.1
MG> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx
MG> Терплю фиаско. Как мне поступть?
по идее надо export LD[b]LIBRARY_PATН= вместо LD_LIBRARY[/b]PATН= в этом случае
но это не очень элегантное решение.

я бы враппер написал такой:
+x /usr/local/bin/soft.sh:
#!/bin/bash
LD[b]LIBRARY[/b]PATН=/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

Maxim Gribanov 21.03.2019 15:42

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>> LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc-2.10.1
MG>> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx
MG>> Терплю фиаско. Как мне поступть?
EL> по идее надо export LD[b]LIBRARY_PATН= вместо LD_LIBRARY[/b]PATН= в этом
EL> случае но это не очень элегантное решение.

EL> я бы враппер написал такой:
EL> +x /usr/local/bin/soft.sh:
EL> #!/bin/bash
EL> LD[b]LIBRARY[/b]PATН=/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.

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

Maxim Gribanov 21.03.2019 16:22

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>> LD[b]LIBRARY[/b]PATН=/opt/xxx/glibc-2.10.1
MG>> /opt/xxx/glibc-2.10.1/ld-linux.so.2 /opt/xxx/bin/xxx
MG>> Терплю фиаско. Как мне поступть?
EL> по идее надо export LD[b]LIBRARY_PATН= вместо LD_LIBRARY[/b]PATН= в этом
EL> случае но это не очень элегантное решение.

EL> я бы враппер написал такой:
EL> +x /usr/local/bin/soft.sh:
EL> #!/bin/bash
EL> LD[b]LIBRARY[/b]PATН=/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.

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


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

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