Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Einfrierendes Programm bei Shell-Script Ausführung

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 08.02.2008 - 11:12    Titel: Einfrierendes Programm bei Shell-Script Ausführung Antworten mit Zitat

Hallo allerseits!

Ich habe ein Programm geschrieben das ständig läuft und alle 120 Sekunden drei Scripte ausführt. Die Scripte sind PHP Scripte die in der Shell ausgeführt werden. Warum ich das so gemacht habe tut nix zur Sache, leider konnte ich es nicht anders lösen. Mein Problem ist nun folgendes:

Hier werden die Scripte ausgeführt:

Code:

-- Run scripts
on runScripts()   
   set cntScripts to count ScriptList
   if cntScripts > 0 then
      repeat with theScript in ScriptList
         showStatus("Lade Script: " & theScript)
         setScriptNameToInterface(theScript)
         
         set sh_script to TransflexResourcesPath & "/" & theScript
         tell application "Finder" to set exec_script to do shell script "." & sh_script & " &"
         
         readLogfile()
         resetScriptNameToInterface()
         hideStatus()
      end repeat
   end if
end runScripts


So, das funktioniert auch alles wunderbar! Nur eine kleine Sache stört mich. In einem PHP Script werden Daten aus einem Ordner geholt und auf einen Webserver übertragen. Sind viele Dateien in dem Ordner muss das PHP Script viel machen und das dauert seine Zeit.
In dieser Zeit aber friert mir dann meine Applikation total ein und ich habe keine Zugriff mehr darauf. Nachdem das Script fertig abgearbeitet wurde läuft das Problem wieder ohne Probleme weiter. Dauert es sehr lange mit dem PHP Script dann bekomme ich einen "Apple Event Timeout" in meinem Programm! Das möchte ich aber nicht!!!

Ich habe schon versucht die Scripte mit einem Ampersand am Schluss aufzurufen damit sie "im Hintergrund" laufen. Das klappt leider nicht!

Habt ihr ne Idee wie ich das lösen könnte?!

Bin für jede Hilfe dankbar!
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 08.02.2008 - 13:18    Titel: Antworten mit Zitat

1. "Finder" brauchst Du von "do shell script" nix zu erzählen. Das "tell" ist also überflüssig
2. Natürlich läuft es im Hintergrund, aber Dein AS wartet auf die Ausgabedaten. Solange STDOUT und STDERR noch mit Deinem AS verbunden sind, hast Du keine Chance.

Also: nicht nur "&" ans Ende hängen sondern "2>/dev/console 1>/dev/consol &" oder ähnliches, um STDERR und STDOUT freizugeben.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
sideshow
•-->
•-->


Anmeldedatum: 07.05.2002
Beiträge: 130

BeitragVerfasst am: 08.02.2008 - 13:28    Titel: Antworten mit Zitat

Skeeve hat Folgendes geschrieben:
1. "Finder" brauchst Du von "do shell script" nix zu erzählen. Das "tell" ist also überflüssig
2. Natürlich läuft es im Hintergrund, aber Dein AS wartet auf die Ausgabedaten. Solange STDOUT und STDERR noch mit Deinem AS verbunden sind, hast Du keine Chance.

Also: nicht nur "&" ans Ende hängen sondern "2>/dev/console 1>/dev/consol &" oder ähnliches, um STDERR und STDOUT freizugeben.


Ah!!! Ok, das macht sinn! Dann leite ich den Output einfach z.B. nach /dev/null (weil brauchen tu ichs nicht weil ich es eh anders logge) und dann läuft mein Script einfach weiter! Ok - super!!!! Vielen Dank!
_________________
Meine Wenigkeit im Internet: http://www.sideshow-systems.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Studio Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter