Script beenden?

Hallo Forum,
nehmen wir an ich habe ein Script geschrieben was Zahlen hochzählt von 1 bis
unendlich:-)
Is ja nicht schwer zu schreiben.
Wenn ich jetzt kein Timeout habe, läuft das Script wohl erstmal ne Zeit.
Wenn ich jetzt aber das Script per Befehl beenden will, was genau
muss ich tun?
INNERHALB des Scriptes ist mir das klar, da kann ich exit() etc.
benutzen, aber wie spreche ich den Thread des Scriptes an.

Sowas wie kill_Script, gibts da was?

Gruß Thomas

Hallo Thomas,

es gibt zwei Moeglichkeiten, die eine von Dir genannte mit exit() ist falsch, diese verursacht bei IPS, dass auch eventuelle nachfolgende Scripte nicht mehr abgearbeitet werden. Hierfuer immer Return benutzen.

Die zweite Moeglichkeit ist, entweder die Scriptlaufzeit per PHP.INI zu begrenzen oder per Variable einen „Halt“ Befehl zu initieren. Dazu muss Dein Scipt allerdings immer diese Variable abfragen und bei entsprechendem Status das Script mit Return verlassen.

Gruss Torro

Hallo Torro,

Ok, mit exit hast Du natürlich recht, mache das bei meinen Scripten/If Schleifen und switch Anweisungen etc. auch immer so.
Die Möglichkeit mit der Variablen und return, ist wenn ich Sie richtig verstanden habe insofern nicht so besonders schön, weil ich dann ja in einem langen Script relativ viele solche Abfragen einbauen müßte, aber das währe zu überlegen.
Mit der php.ini, das verstehe ich nicht, wie kann ich während der Ausführung eines bestimmten scriptes x dessen Ablaufzeit zurücksetzen. Hast Du da mal ein Beispiel?
Kann man denn nicht dem PHP Interpreter sagen führe letzten PHP Befehl eines Scriptes aus und stoppe dann?

Gruß Thomas

Hallo Thomas,

das ist eigentlich die einzigste Moeglichkeit, das entsprechend sauber und kontrolliert zu machen.

Mit der php.ini, das verstehe ich nicht, wie kann ich während der Ausführung eines bestimmten scriptes x dessen Ablaufzeit zurücksetzen. Hast Du da mal ein Beispiel?
Kann man denn nicht dem PHP Interpreter sagen führe letzten PHP Befehl eines Scriptes aus und stoppe dann?

Gruß Thomas

das trifft dann nur generell zu, und wird Dir sicher nicht helfen. Ich habe es nur der Vollstaendigkeit aufgefuehrt. Letzteres geht IMHO nicht.

Gruss Torro

Danke Torro, werde das mit mehreren return Abfragen mal so umsetzen.

Mal noch was anderes gibt es eine Möglichkeit eine TTS_Speak Funktion zu unterbrechen ?

Gruß Thomas

Ein scriptbedingtes abbrechen einer Schleife in PHP geschieht sauber mit break. Nach dem Break befehl verlässt der Stackpointer die Schleife, nicht jedoch das Script. Du kannst also nach der Schleife noch weiterarbeiten oder das script auf „normalem Wege“ enden lassen. Return beendet das Script, egal was noch kommt, mit dem Holzhammer :wink:

Gruß,

Toni

OK Toni ist klar, will ja auch das ganze Script erschlagen. :smiley:

Gruß Thomas

Hallo Toni,

haeh? Du liest auch nicht mehr den Betreff? Er will doch das Script beenden, nicht die Schleife. :smiley:

Gruss Torro

Nicht nur lesen allein, auch weiterdenken :smiley: :wink:

wenn man break clever verwendet ist danach kein Script mehr übrig das weiter ausgeführt werden müsste und somit ist es auf natürlichem Weg zuende. Eine durchaus saubere Methode und kein Holzhammer/Garbage Collector/Speicherfreigabe nötig. :wink:

Hallo Toni,

lies mal die php.net Doku bitte…:slight_smile:

Gruss Torro

Na ich hab ja nix gegen saubere Soft (ob Microsoft Entwickler hier auch lesen:D ), aber break nutzt mir hier nicht ganz so viel, weil ich mein Nachtmodusscript eher beenden will wenn ich es möchte und da ist ne Menge TTS_Speak, mp3, und geparstes Zeug aus dem Inet dabei was nacheinander abgearbeitet wird, da muß ich immer mal zwischendurch ein paar Türen einbauen um raus zu kommen und wenns halt erstmal nix bessers gibt als return, dann muß ich das so machen, ach da lieb ich mir doch meine alten Assemblerzeiten:rolleyes: Da gabs ein Interrupt und man hat einfach den Zeiger auf eine andere Adresse gesetzt und schon gings woanders weiter…
Also Toni & Torro, da werd ich Euch wohl doch noch des öfteren brauchen.

Gruß Thomas

Hallo,

das macht doch nix, wir helfen gern. Es gibt uebrigens auch unter PHP so eine Art Interrupt Steuerung, nur leider kannst Du die in diesem Fall nicht benutzen. Ich habe auch noch nicht getestet, ob sie in der IPS Webserverumgebung sauber laeuft, da bin ich mir naemlich nicht ganz sicher - da dies doch ziemlich low level ist.

Aber nix fuer ungut, Du wirst das schon richtig loesen.

Gruss Torro

Steht sinngemäß Holzhammer drin. Hast du sie auch gelesen? :wink:

Weiss garnicht warum du die beiden Lösungen nicht einfach so stehen lässt… Sind doch beide Okay!?!

Toni