Всем привет!
Я написал простенькую программу на perl'e, которая работает по
текстовому протоколу запрос-ответ.
Чтобы ещё сильнее упростить программу я решил исключить работу с
сетью и вместо этого воспользоваться услугами суперсервера xinetd.
Прописал всё что нужно в /etc/services и /etc/xinetd.d/my_prog.
Программе можно посылать запросы (SQL) и получать ответы (в качестве
СУБД используется Oracle 10g).
Но я столкнулся с проблемой!!!
Программа my_prog запускается из скриптика my_prog.cmd (нужно только
для выставления переменных окружения).
Когда я просто запускаю скрипт
./my_prog.cmd
всё работает отлично.
Запускаю я именно от того пользователя, что указан в файле
/etc/xinetd.d/my_prog
Но стоит мне сделать следующую команду
telnet localhost <port of my_prog>
и возникает проблема коннекта к БД Oracle.
Выдаёт следующую ошибку
DBI connect('MYSID','user1',...) failed: ERROR OCIEnvNlsCreate (check ORACLE_HOME and NLS settings etc.) at ./my_prog line 16
Самое интересное то, что я вывожу хэш ENV в обоих случаях и
значения переменных совпадают.
Запуск программы как я уже говорил происходит от одного пользователя
в обоих случаях.
Вопрос!
Почему при запуске через xinet.d программа работает некорретно?
Где портится среда, на каком уровне?
Форум —
Development
