Как задать переменную окружения для одной программы

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Voronok
рядовой
Сообщения: 25
Зарегистрирован: 2006-06-29 18:53:59

Как задать переменную окружения для одной программы

Непрочитанное сообщение Voronok » 2016-06-30 10:47:12

Здравствуйте.

Нужно держать две версии одной программы, соответственно, для одной из них нужно указать нужное расположение динамической библиотеки.

В дебиане выкрутился просто, переменная задаётся для запуска программы, потом исчезает.

Код: Выделить всё

LD_PRELOAD=/lib_path/lib.so /run_path/command
Во фре пробую подобную конструкцию, но, естественно, не прокатывает

Код: Выделить всё

setenv LD_PRELOAD /lib_path/lib.so /run_path/command
setenv: Too many arguments.
Установить переменную LD_PRELOAD при загрузке не вариант, тогда вылетает другая версия программы. Вручную (скриптом) устанавливать переменную, запускать программу, потом очищать переменную тоже не вариант, т.к. программы дергаются из веб-интерфейса и могут запускаться одновременно. Хотя, надо попробовать, может они будут работать в разных сессиях, может и прокатит.

А вообще интересует как задать переменную окружения для одного запуска одной программы. Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Voronok
рядовой
Сообщения: 25
Зарегистрирован: 2006-06-29 18:53:59

Как задать переменную окружения для одной программы

Непрочитанное сообщение Voronok » 2016-06-30 11:32:18

Voronok писал(а): Хотя, надо попробовать, может они будут работать в разных сессиях, может и прокатит.
Прокатило.

Код: Выделить всё

#!/usr/bin/perl -w
#

use strict;
use CGI qw(:all);
use CGI::Carp qw(fatalsToBrowser);

print <<HTML;
Content-type: text/html\n
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
HTML

my $cmd_new = `LD_PRELOAD=/lib_path/lib.so; export LD_PRELOAD; /run_path/command_new`;
my $cmd_old = `/run_path/command_old`;


print "----------- new ---------<br>";
print "$cmd_new <br>";
print "----------- old ---------<br>";
print "$cmd_old <br>";
print "----------- end ---------<br>";
Работает.

Аватара пользователя
Neus
майор
Сообщения: 2005
Зарегистрирован: 2008-09-08 21:59:56

Как задать переменную окружения для одной программы

Непрочитанное сообщение Neus » 2016-06-30 16:48:19

Можешь поставить bash и "выкручиваться" как в Debian :)
Или это https://www.freebsd.org/cgi/man.cgi?que ... ormat=html