The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
трабла, !*! sproot, 21-Фев-05, 06:12  [смотреть все]
Стоит Apache+mod_perl. Из перл скрипта выполняю команду:
$data=`/opt/apache2/sites/reg 1 root\@ppp.ru`;
переменная $data пустая
если выполнить тоже самое под юзером под которым запущен apache на stdout
выводится то что и должно выводится.
reg-откомпилированная программа написаная на C
Вопрос:
Почему в переменную $data не записывается stdout выполнения программы reg ?
  • трабла, !*! 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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру