- трабла, sproot, 07:08 , 21-Фев-05 (1)
>Стоит Apache+mod_perl. Из перл скрипта выполняю команду: >$data=`/opt/apache2/sites/reg 1 root\@ppp.ru`; >переменная $data пустая >если выполнить тоже самое под юзером под которым запущен apache на stdout > >выводится то что и должно выводится. >reg-откомпилированная программа написаная на C >Вопрос: >Почему в переменную $data не записывается stdout выполнения программы reg ? Уточнение. [root@sproot sites]# su - www -c '/opt/apache2/sites/run.sh' /opt/apache2/sites/run.sh: line 2: 6262 Segmentation fault /opt/apache2/sites/reg 1 ggg А если [root@sproot sites]# su www -c '/opt/apache2/sites/run.sh' то все работает run.sh: #!/bin/bash /opt/apache2/sites/reg 1 ggg Где я ошибаюсь ?
- трабла, ACCA, 09:02 , 21-Фев-05 (2)
>[root@sproot sites]# su - www -c '/opt/apache2/sites/run.sh' >/opt/apache2/sites/run.sh: line 2: 6262 Segmentation fault >/opt/apache2/sites/reg 1 ggg > >А если >[root@sproot sites]# su www -c '/opt/apache2/sites/run.sh' >то все работает > >run.sh: >#!/bin/bash >/opt/apache2/sites/reg 1 ggg > >Где я ошибаюсь ? Похоже, что у тебя Linux и проблема - в динамических библиотеках.
Либо статически слинкуй reg, либо с помощью ldconfig укажи, где ему искать динамические библиотеки.
- трабла, sproot, 09:09 , 21-Фев-05 (3)
>>[root@sproot sites]# su - www -c '/opt/apache2/sites/run.sh' >>/opt/apache2/sites/run.sh: line 2: 6262 Segmentation fault >>/opt/apache2/sites/reg 1 ggg >> >>А если >>[root@sproot sites]# su www -c '/opt/apache2/sites/run.sh' >>то все работает >> >>run.sh: >>#!/bin/bash >>/opt/apache2/sites/reg 1 ggg >> >>Где я ошибаюсь ? > > >Похоже, что у тебя Linux и проблема - в динамических библиотеках. > >Либо статически слинкуй reg, либо с помощью ldconfig укажи, где ему искать > >динамические библиотеки. Я не использовал какие-либо внешние библиотеки
- трабла, sproot, 09:10 , 21-Фев-05 (4)
>>>[root@sproot sites]# su - www -c '/opt/apache2/sites/run.sh' >>>/opt/apache2/sites/run.sh: line 2: 6262 Segmentation fault >>>/opt/apache2/sites/reg 1 ggg >>> >>>А если >>>[root@sproot sites]# su www -c '/opt/apache2/sites/run.sh' >>>то все работает >>> >>>run.sh: >>>#!/bin/bash >>>/opt/apache2/sites/reg 1 ggg >>> >>>Где я ошибаюсь ? >> >> >>Похоже, что у тебя Linux и проблема - в динамических библиотеках. >> >>Либо статически слинкуй reg, либо с помощью ldconfig укажи, где ему искать >> >>динамические библиотеки. >Я не использовал какие-либо внешние библиотеки мой Makefile reg : reg_new.c gcc reg_new.c -O2 -Wall -o reg Я что-то изменил Segmentation fault больше не появляется но и вывода программы тоже нет :(
- трабла, ACCA, 19:14 , 24-Фев-05 (5)
>>Я не использовал какие-либо внешние библиотеки >мой Makefile >reg : reg_new.c > gcc reg_new.c -O2 -Wall -o reg Запусти gcc -print-libgcc-file-name ты собрал минимум с этой библиотекой. Я не скажу сразу, кого ещё она может подключить. Запусти gcc -print-search-dirs в секции libraries: перечислены каталоги, где могут быть ещё библиотеки, которые могут подключаться автоматически. Твой reg должен правильно работать при su - www -c '/opt/apache2/sites/run.sh' Если не хочешь разбираться с ldconfig, сделай gcc reg_new.c -O2 -Wall -static -o reg
|