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

Watchdog für Script

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


Anmeldedatum: 12.05.2015
Beiträge: 1

BeitragVerfasst am: 12.05.2015 - 21:17    Titel: Watchdog für Script Antworten mit Zitat

Hallo zusammen,

ich habe ein Script geschrieben, dass leider ab und zu mal abstürzt. Dabei hab ich das zu überwachende Script so realisiert, dass es sich bei einem error selbstständig schließt.

Das Problem der Abstürze wollte ich über einen Watchdog lösen. Leider stürzt auch dieser mit der Fehlermeldung "Apple event lieferte eine Zeitüberschreitung" ab.

Hier mein Code für den Watchdog
Code:

repeat
   delay 60
   set core_is_running to is_running("Programmname")
   if core_is_running is false then
      tell application "Programmname" to activate
      set core_is_running to is_running("Programmname")
   end if
end repeat

on is_running(appName)
   tell application "System Events" to (name of processes) contains appName
end is_running


Kennt jemand eine andere Möglichkeit einen Watchdog zu realisieren der das Laufen des Scripts überwacht? Oder vielleicht eine Möglichkeit meinen aktuellen Watchdog robuster zu realisieren.

Besten Dank vorab und viele Grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Wolle-77
•--->
•--->


Anmeldedatum: 25.02.2003
Beiträge: 447
Wohnort: Geldern

BeitragVerfasst am: 27.05.2015 - 07:55    Titel: Antworten mit Zitat

Zunächst einmal solltest Du das nicht mit einer Endlosschleife realisieren; da diese zuviel Systemlast kostet (trotz des delays).

Ein

Code:
on idle
  … (Prüfprozess)
  return 60
end idle


ist da genügsamer. Voraussetzung ist natürlich, daß Script als stay-open zu sichern. In Yosemite falsch lokalisiert als "Nach Run anzeigen".

Und wenn auch Dein Guard versagt mit der Fehlermeldung "Apple event lieferte eine Zeitüberschreitung", dann kann es ja nur an der Prüfzeile liegen.

Du könntest versuchen, das mit timeout zu realisieren:

Code:
with timeout of 30 seconds
   tell application "System Events" to set ergebnis to (name of processes) contains appName
   return ergebnis
end timeout
return false


Das sorgt jetzt dafür, daß planmäßig die beiden Zeilen ausgeführt werden. Und sollte das fehlschlagen, da System Events nicht reagiert, bricht er dort ja ab (nach in dem Fall 30 Sekunden ohne Rückgabewert) und führt nur dann (da er sonst ja bei return ergebnis schon nicht mehr im handler ist) das return false aus, damit Dein Handler nicht ohne Rückgabewert beendet wird.
_________________
Martin Wolter
--
Apple rocks the planet!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Yakobaki
•->
•->


Anmeldedatum: 11.08.2015
Beiträge: 2

BeitragVerfasst am: 11.08.2015 - 06:50    Titel: Antworten mit Zitat

Is essential to me, and I wish more of these or not.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X 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