PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : perl script am ende nochmal starten



malburg
29-05-2002, 10:48
hallo

ich habe mal eine frage zu perl

und zwar möchte ich, das ein perl script, wenn es zu ende durchgearbeitet wurde, sich erneut startet.


danke im vorraus

M. Alburg

msi
29-05-2002, 15:11
dann führs doch einfach aus mit
`scriptname`;

lolli
29-05-2002, 20:51
Dir ist dann aber schon klar, das das eine Endlosschleife ist?!

Oliver

TommeS73
30-05-2002, 04:50
erklär doch mal in Kurzform, wozu Du sowas benötigst - vielleicht lässt sich ja auch etwas Alternatives finden

malburg
30-05-2002, 07:06
also ich habe hier ein perl script welches in einer textdatei nachschaut, ob sich was geändert hat. wenn sich was geändert hat, dann schickt es eine mail an mich.

und jetzt habe ich es für einen durchlauf programmiert und deshlab muss ich es erneut starten. ich wollte es aber auch nicht über den cron machen, da mir da eine kleine zeitliche verzögerung entsteht.


ich weiss, ich könnte auch einfach eine schleife rumachen, welche solange läuft bis ich das programm mit kill abbreche, aber das will ich nicht.

ich möchte es in der console laufen lassen und wenn ich STR-C drücke, soll es abgebrochen werden.


thx M. Alburg

msi
30-05-2002, 11:11
wieso nimmst du keine while (1) schleife her?
dann kannst du sleep x noch am ende einfügen, damit nicht soviel
prozessorlast verbraucht wird.
Mach das nicht so wie ich das geschrieben habe,
da du sonst ziemlich viele tote Prozesse kriegst, die drauf warten bis
sich der prozess den sie mit ```ausgeführt haben beendet und das passiert wegen
der endschleife erst wenn du die prozesse killst.

TommeS73
30-05-2002, 18:23
hi,

da mich die Sache selbst interessiert hat, habe ich mal schnell ein kleines Snippet geschrieben, um mal die Systemlast zu prüfen. Das Ergebnis konnte ich mir zwar denken, aber jetzt habe ich es schwarz auf weiss: Der Prozess zieht sich die volle CPU-Leistung rein -> Du kannst zwar Dein System trotzdem über den nice-Wert gängig halten, aber die optimale Lösung ist das wohl nicht.

Ich schliesse mich mal der Aussage von msi an, dass wohl die Definition einer Endlosschleife über while mit einem kurzen sleep drin die eleganteste Lösung ist.

Von Backticks, welche meiner Meinung nach wie ein system-Aufruf funktionieren, würde ich in jedem Fall abraten -> dann doch eher exec.

mfg
Tom

msi
30-05-2002, 19:43
system auf gar keinem fall, sonst gehen dir irgendwann die systemressourcen aus
und dann hilft nur noch ein HARD abschalten, da du nicht mal mehr reboot machen
kannst, nicht mal mehr ls!!!
ja, hab ich alles schon ausprobiert (in nem Produktivnetz :-)