as Warum und Wie beim Erstellen eines Watchdogs in Cocoa / Objective

uch allen einen schönen Monta

ier ist meine Situation. Jede Hilfe sehr geschätzt!

Ich habe eine ausführbare Datei erstellt, die bei der Installation im Ordner "Launch Agents" des Computers abgelegt wird. Theoretisch sollte es ununterbrochen laufen und jede Sekunde Daten sammeln. Es kann angehalten werden, wenn der Computer schläft, aber neu gestartet werden, wenn der Computer reaktiviert wird.

Hier ist mein Problem: Manchmal stoppt das Programm einfach spontan, normalerweise nach ein paar Tagen Laufen. Wenn Sie den Computer neu starten, wird das Programm neu gestartet und einige Zeit lang ausgeführt, bevor dasselbe Problem auftritt.

Ich habe keine Ahnung, warum dieses Problem aufgetreten ist, aber ein Freund hat mir mitgeteilt, dass ich einen 'Watchdog' erstellen könnte, der jede Minute überprüft, ob meine ausführbare Datei ausgeführt wird. Ist dies nicht der Fall, startet der Watchdog die ausführbare Datei neu.

Irgendwelche Hinweise, wie das geht? Meine Apps sind in Objective-C und Cocoa geschrieben und laufen auf Macs.

Vielen Dank

EDIT 1

Ich werde erklären, wie die App nach besten Kräften funktioniert. Es handelt sich im Grunde genommen um eine Sammlung von in C und Objective C geschriebenen Methoden, die jede Sekunde Informationen über das System abfragen:

-bytes gesendet -tastaturaktivität- -Mausaktivität- -Prozentsatz der Festplatte verbraucht -Prozess mit Tastaturfokus

...etc

Es verwendet dazu APIs auf niedriger Ebene, die von der Apple Developer-Website bereitgestellt werden. Die Informationen werden jede Sekunde in eine Datei geschrieben. Jede Stunde wird die Datei gezippt und eine neue Datei erstellt.

Bitte fragen Sie, ob weitere Klarstellungen erforderlich sind:)

EDIT 2

Für diejenigen, die sich fragen, hier ist die plist-Datei

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 <plist version="1.0">
 <dict>
     <key>Label</key>
     <string>com.Intel</string>
     <key>OnDemand</key>
     <true/>
     <key>ProgramArguments</key>
     <array>
         <string>/Library/LaunchAgents/Contents/Intel</string>
     </array>
     <key>RunAtLoad</key>
     <true/>
 </dict>
 </plist>

Danke noch einmal...

Antworten auf die Frage(2)

Ihre Antwort auf die Frage