LINUX.ORG.RU

Передача данных через переменные окружения. Туплю?


0

0

Есть программа (wvdial), которая в процессе работы вызывает другую программу (pppd), а та в свою очередь запускает shell-скрипт (ip-up). Я в главной программе (wvdial) устанавливаю переменную окружения (setenv(...)). Переменная устанавливается (если проверять getenv'ом). Далее в скрипте я эту переменную вывожу в файл (echo $... > ...). Результат - файл пустой. Чего я делаю не так? Или чего я не понимаю?

anonymous

А вы уверены,что этот скрипт вообще запускается?
Есть ли там что-нибудь из дефолтных записей,которые себя проявляют?

anonymous
()

1. Есть вероятность что ppd твою переменную не передает в ip-up - попробуй дернуть сразу шелл скрипт (приечем не ip-up а свой).
2. Проверь как ты запускаешь ppd - лутше всего дергать execle и указывать ему массив переменных.

zaz ★★★★
()
Ответ на: комментарий от zaz

Скрипт точно запускается. Проблема только с передачей ему параметров.

>Есть вероятность что ppd твою переменную не передает в ip-up - попробуй дернуть сразу шелл скрипт (приечем не ip-up а свой)

В смысле запускать скрипт прямо из первой программы?

Странно, я честно говоря думал, что переменные окружения наследуются - я не прав?

anonymous
()
Ответ на: комментарий от zaz

Покопался в исходниках wvdial - pppd там запускается довольно хитро, с использованием библиотеки wvstreams. Но это не суть важно, я подсовывал вместо настоящего pppd свою программу - видит она нужную переменную. Так что виновник всего - pppd.

Что общество может посоветовать? Мне надо передать в скрипт ip-up из wvdial параметр, стоит ли ради этого ковыряться еще и в исходниках pppd или забить и передавать, к примеру, через временный файл?

Хочется сделать покрасивше, может есть какие-нибудь другие варианты?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.