P
Phill
Jungspund
Hallo, ich habe hier so ein ungewöhnliches Problem, dass mir noch nicht einmal ein sinnvoller Titel einfällt.
Also folgendes, ein Perl Script das per Apache2 über die CGI-Schnittstelle ausgeführt wird. In dem Script wird ein Shellprogramm ausgeführt was laufen bleiben soll (also als daemon). Das eigentliche Perl Script soll (muss) aber beendet werden, damit der Webbrowser die Rückgabe bearbeitet.
So ungefair:
Wenn ich es so mache wird der Perlprozess nicht beendet, und der Browser interpretiert nicht die Rückgabe, bis ich den daemon per hand beende und das Perlscript nicht mehr im Speicher ist.
Ich habe schon fork() probiert system("nohup programm &"); aber nichts klappt, außer:
Wenn ich den Daemon an etwas was einen Fehler zurück gibt "peipe", wird das Perlscript nach der letzten Zeile beendet und der Browser interpretiert die Rückgabe.
Kann mir das einer erklären, und sagen wie ich es eigentlich richtig machen muss!
Also folgendes, ein Perl Script das per Apache2 über die CGI-Schnittstelle ausgeführt wird. In dem Script wird ein Shellprogramm ausgeführt was laufen bleiben soll (also als daemon). Das eigentliche Perl Script soll (muss) aber beendet werden, damit der Webbrowser die Rückgabe bearbeitet.
So ungefair:
Code:
system("daemon_programm.sh &");
print "alert('Programm gestartet!');";
Wenn ich es so mache wird der Perlprozess nicht beendet, und der Browser interpretiert nicht die Rückgabe, bis ich den daemon per hand beende und das Perlscript nicht mehr im Speicher ist.
Code:
6624 ? Z 0:00 [script.pl] <defunct>
Ich habe schon fork() probiert system("nohup programm &"); aber nichts klappt, außer:
Code:
system("daemon_programm.sh | dashierverstehichnicht &");
Kann mir das einer erklären, und sagen wie ich es eigentlich richtig machen muss!