Как я разветвляюсь правильно с mod_perl2?

Есть много проблем с кодом. Из того, что я вижу в вашем коде, у вас есть таблица внутри тела и в конце закрыта только одна таблица. Во-вторых, вы также пытаетесь вставить тд в другой тд, что не правильно. Посетите сайт разработчика mozilla для получения дополнительной информации об использовании таблиц HTML.

7
задан Dan 23 January 2009 в 02:39
поделиться

3 ответа

Вы, вероятно, хотите считать это обсуждение. Кажется, что Вы не должны разветвляться на mod_perl, если Вы не знаете, как подготовить вещи. Необходимо использовать модуль, такой как Apache2:: SubProcess

2
ответ дан 7 December 2019 в 16:46
поделиться

Попытайтесь закрыть свои дескрипторы STDIN/STDOUT перед ветвлением.

1
ответ дан 7 December 2019 в 16:46
поделиться

В моем (раньше mod_perl, теперь FCGI) код, я "еще" имею в пункт "если ($kpid)",

    close STDIN;
    close STDOUT;
    close STDERR;
    setsid();

Кроме того, по причинам, что я забыл, я сразу, ветвление снова, и затем в том ребенке вновь открыло STDIN, STDOUT и STDERR.

Таким образом, это похоже:

$SIG{CHLD} = 'IGNORE';

# This should flush stdout.
my $ofh = select(STDOUT);$| = 1;select $ofh;

my $kpid = fork;
if ($kpid)
{
    # Parent process
    waitpid($kpid, 0);
}
else
{
    close STDIN;
    close STDOUT;
    close STDERR;
    setsid();
    my $gpid = fork;
    if (!$gpid)
    {
        open(STDIN, "</dev/null") ;#or print DEBUG2 "can't redirect stdin\n";
        open(STDOUT, ">/dev/null") ;#or print DEBUG2 "can't redirect stdout\n";
        open(STDERR, ">/dev/null") ;#or print DEBUG2 "can't redirect stderr\n";
        # Child process
        exec($pgm, @execargs) ;# or print DEBUG2 "exec failed\n";
    }
    exit 0;
}
0
ответ дан 7 December 2019 в 16:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: