phpbar.de logo

Mailinglisten-Archive

[php] Script gezielt beenden

[php] Script gezielt beenden

Daniel Lorch php_(at)_phpcenter.de
Fri, 2 Aug 2002 01:09:02 +0200


hi,

> da ja bei fast allen Providern PHP als CGI laeuft,
> mache ich sehr viel auch auf der Konsole mit PHP.
> 
> Aber nun habe ich ein Problem:
> Wie kann man ein Script auf der Konsole anhalten ?
> ^C geht da nicht wirklich:
> - das Script wird zwar terminiert, aber alle Buffer
>   sind futsch. Es waere jedoch sinnvoll, wenn die
>   erst noch auf Platte geschrieben werden.
> 
> Es muss doch moeglich sein, einem laufenden Script
> eine Tastatureingabe zu senden - oder doch nicht ?

Das ist nicht so ganz trivial. Wenn Du CTRL-C drückst, schickst Du dem Programm
ein Signal namens SIGINT (für "Signal Interrupt"). Das einfachste wäre, dieses
Signal abzufangen und dort deinen Code für den Buffer-to-Disk hineinzutun.

Damit das funktioniert muss PHP aber mit PCNTL (Process Control) compiliert
sein - und das ist es in den seltensten Fällen (macht im Einsatz für's Web
auch keinen Sinn):

  http://www.php.net/manual/en/ref.pcntl.php

Du kannst doch in deinem Script einfach öfters auf Disk schreiben, dann
müsste das Problem doch auch gelöst sein, oder? 

-daniel


php::bar PHP Wiki   -   Listenarchive