ignore_user_abort in Perl?
ignore_user_abort in Perl?
am 06.10.2006 21:26:11 von helmut_nospam
Hallo NG,
gibt es in Perl einen analogen Befehl zum PHP-Befehl ignore_user_abort?
D.h. ein einmal gestartetes Perl-Serverscript wird auch dann weiter=20
ausgeführt, wenn die Verbindung zum Browser gekappt wird.
thanx for your help, Helmut
Re: ignore_user_abort in Perl?
am 06.10.2006 23:52:35 von Slaven Rezic
helmut_nospam@web.de (Helmut Blass) writes:
> Hallo NG,
> gibt es in Perl einen analogen Befehl zum PHP-Befehl ignore_user_abort?
> D.h. ein einmal gestartetes Perl-Serverscript wird auch dann weiter
> ausgeführt, wenn die Verbindung zum Browser gekappt wird.
>
CGI oder mod_perl? Aber ich glaube, dass Perl-Programme nicht
abgebrochen werden, wenn die Verbindung geschlossen wird. Bei mod_perl
muss man explizit per aborted() prüfen, ob eine Verbindung zum Client
noch besteht.
Gruß,
Slaven
--
Slaven Rezic - slaven rezic de
Start a WWW browser - OS independent:
http://user.cs.tu-berlin.de/~eserte/src/perl/WWWBrowser/
Re: ignore_user_abort in Perl?
am 07.10.2006 00:30:39 von Sven Neuhaus
Helmut Blass schrieb:
> gibt es in Perl einen analogen Befehl zum PHP-Befehl ignore_user_abort?
> D.h. ein einmal gestartetes Perl-Serverscript wird auch dann weiter
> ausgeführt, wenn die Verbindung zum Browser gekappt wird.
Das PIPE-Signal tritt auf, wenn Ausgaben des bereits clientseitig
abgebrochenen Requests im CGI auf STDOUT erfolgen.
Es müßte reichen SIGPIPE zu ignorieren (ist vermutlich bereits so
voreingestellt):
$SIG{PIPE} = 'IGNORE';
-Sven
Re: ignore_user_abort in Perl?
am 07.10.2006 09:46:10 von helmut_nospam
In article <4526d910$0$30582$9b4e6d93@newsspool4.arcor-online.net>, Sven Ne=
uhaus wrote:
>Helmut Blass schrieb:
>> gibt es in Perl einen analogen Befehl zum PHP-Befehl ignore_user_abort?
>> D.h. ein einmal gestartetes Perl-Serverscript wird auch dann weiter=20
>> ausgeführt, wenn die Verbindung zum Browser gekappt wird.
>
>Das PIPE-Signal tritt auf, wenn Ausgaben des bereits clientseitig=20
>abgebrochenen Requests im CGI auf STDOUT erfolgen.
>Es müßte reichen SIGPIPE zu ignorieren (ist vermutlich bereits so=20
>voreingestellt):
>$SIG{PIPE} =3D 'IGNORE';
D.h., dass Perl-Skripte _immer_ automatisch bis zum Ende ausgeführt werde=
n?
Wäre mir aber neu.
Da fällt mir noch eine andere Frage ein: kann man die Begrenzung der=20
Ausführungszeit eines Skriptes beeinflussen?
AFAIK ist da standardmässig 30 sec. eingestellt. In PHP kann man das mit=
=20
set_time_limit() hochsetzen.
Gruss, Helmut
Re: ignore_user_abort in Perl?
am 07.10.2006 10:37:01 von Frank Seitz
Helmut Blass wrote:
> In article <4526d910$0$30582$9b4e6d93@newsspool4.arcor-online.net>, Sven Neuhaus wrote:
>>Helmut Blass schrieb:
>>>
>>>gibt es in Perl einen analogen Befehl zum PHP-Befehl ignore_user_abort?
>>>D.h. ein einmal gestartetes Perl-Serverscript wird auch dann weiter
>>>ausgeführt, wenn die Verbindung zum Browser gekappt wird.
>>
>>Das PIPE-Signal tritt auf, wenn Ausgaben des bereits clientseitig
>>abgebrochenen Requests im CGI auf STDOUT erfolgen.
>>Es müßte reichen SIGPIPE zu ignorieren (ist vermutlich bereits so
>>voreingestellt):
>>$SIG{PIPE} = 'IGNORE';
>
> D.h., dass Perl-Skripte _immer_ automatisch bis zum Ende ausgeführt werden?
Wenn sie erst am Ende zum Webserver kommunizieren, schon.
> Wäre mir aber neu.
Wer weiß das schon so genau?
Ich denke auch, wenn Du SIGPIPE ignorierst, müsstest Du den gewünschten
Effekt haben. Ich glaube allerdings nicht, dass das Signal
üblicherweise ignoriert wird.
Grüße
Frank
--
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel
Re: ignore_user_abort in Perl?
am 07.10.2006 12:07:31 von Slaven Rezic
helmut_nospam@web.de (Helmut Blass) writes:
[...]
> Da fällt mir noch eine andere Frage ein: kann man die Begrenzung der
> Ausführungszeit eines Skriptes beeinflussen?
> AFAIK ist da standardmässig 30 sec. eingestellt. In PHP kann man das mit
> set_time_limit() hochsetzen.
Es gibt standardmäßig keine Begrenzung der Ausführungszeit. Aber unter
Unix kann man mit Resource-Limits arbeiten und damit beispielsweise
die maximale CPU-Zeit eingrenzen. Siehe Apache::Resource und
BSD::Resource.
--
Slaven Rezic - slaven rezic de
Berlin Perl Mongers - http://berlin.pm.org