Господа, помогите чайнику!Работающие на домашнем сервере (Linux Apache) тупые ELF-CGIшники ("Hello World" и не более того) после переноса на сервер (FreeBSD Apache) упорно валятся по signal 6. Хозяева хостинга упорно не хотят понять, в чем дело. Может проблема в ключах cc?
Заранее благодарен.
Глеб.
>Господа, помогите чайнику!
>
>Работающие на домашнем сервере (Linux Apache)
>тупые ELF-CGIшники ("Hello World" и
>не более того) после переноса
>на сервер (FreeBSD Apache) упорно
>валятся по signal 6. Хозяева
>хостинга упорно не хотят понять,
>в чем дело. Может проблема
>в ключах cc?
>
>Заранее благодарен.
>Глеб.imho, linux и freebsd немного разные вещи ;)
elf'ы являются полноценными программками и не зависят от web-сервера(apache). лучше, конечно, компилировать под той ОС, где они будут работать.с уважением, Dmitry.
/* >>Господа, помогите чайнику!
* >>
* >>Работающие на домашнем сервере (Linux Apache)
* >>тупые ELF-CGIшники ("Hello World" и
* >>не более того) после переноса
* >>на сервер (FreeBSD Apache) упорно
* >>валятся по signal 6. Хозяева
* >>хостинга упорно не хотят понять,
* >>в чем дело. Может проблема
* >>в ключах cc?
* >>
* >>Заранее благодарен.
* >>Глеб.
* >
* >imho, linux и freebsd немного разные вещи ;)
* >elf'ы являются полноценными программками и не зависят от web-серве (apache). лучше, конечно, компилировать
* >под той ОС, где они будут работать.
* >
* >с уважением, Dmitry.
*
*
* А я предлагаю типа такую прогу скомпилить де надо!
* Типа сам на С++ пишу СGI !
*
*/#include <iostream.h>
int main(int argc, char *argv[])
{ cout<<"Content-type: text/html\n"<<endl;cout<<\
"<HTML><HEAD><TITLE> Testing CGI </TITLE><HEAD><BODY>\
<CENTER><H1>HELLO WORLD!!!</H1></CENTER>\
</BODY></HTML>"<<endl;}
// Сто пудово сработает !!!
поробуй собрать все библиотеки статиком, должно работать ..только вот не помню как это делать короче man make
>поробуй собрать все библиотеки статиком, должно работать ..
>
>только вот не помню как это делать короче man make
YO! Типа это опять я! Сигнал номер 6 - это SIGABRT !!!
Он может быть вызван только програмно ( функцией аборт! )
Попробуй включить в CGI обработку сигналов !!!
man sigaction !!!
И забей на этот сигнал ! Предлагаю такой код:#include <signal.h>
#include <string.h>void ignore_signals(int signal_number)
{ ;
}void sigaction__()
{ struct sigaction sa;
memset (&sa, 0, sizeof(sa));
sa.sa_handler = &ignore_signals;sigaction(SIGHUP, &sa, NULL);
}
Ну прсто по началу проги вызывайsigaction__();
и болт сигналу!
А потом что - то типа :cout<<"Content-type: text\html\n"<<endl;
cout<<"<HTML ..........Типа удачи !!!
А что касается библиотек ... То если в них дело, переустанови их нафиг,
а если и мой совет не проканает, Apache дырявая ! Чо - то в ее
кодах abort(); мутит !!!! :)Ну все ! PEASE FOR ALL !!!
> sigaction(SIGHUP, &sa, NULL);Тфу, блин, башка тупая моя! :)
Вместо SIGHUP подставь SIGABRT! И еще ...
Не СС в командной строке пиши, а с++ !!!