• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

[10.6 Snow Leopard] AppleScript zeitgesteuert per LaunchAgent starten

  • Ersteller Ersteller Benutzer 62153
  • Erstellt am Erstellt am

Benutzer 62153

Gast
Ich möchte ein Applescript jeden Tag um 12:00 starten. Falls der Computer dann aus oder im Ruhezustand ist, soll der Befehl nachgeholt werden, sobald der Computer an ist. Natürlich soll der Befehl nach zwei Wochen nicht 14 Mal, sondern nur ein Mal ausgeführt werden. Das Script soll im Hintergrund gestartet werden und nicht als App sichtbar sein. Trotzdem ist es wichtig, dass sichergestellt ist, dass das Script fehlerfrei abläuft.

Kann ich das über die LaunchAgents machen?

Wie sieht die .plist dafür aus und werden meine Anforderungen überhaupt erfüllt?

Danke
 
klingt nah cron job. Schau mal nach, wie du unter Mac OS X cronjobs über launchd starten kannst. Da gibt es eigentlich auf der Apple Seite ganz gute Erklärungen. LaunchAgents sind eher kleine Hilfsprogramme, die überwachen, ob ein bestimmter Prozess läuft und ihn gegebenenfalls starten. LaunchDaemons sind kleine Hilfsprogramme, die permanent laufen und sich beim beenden durch Launchd neugestartet werden. Da kann man auch glaube ich zeit einstellen, wann das passieren soll, ähnlich wie cron jobs, jedoch ist die formulierung eine ganz andere (Sting vs. *.plist)
 
naja, das Dokument hilft dir schon weiter, da steht nämlich alles drin, was du mit launchd machen kannst
 
Ja, ich weiss, dass ich das mit launchd machen soll, aber diese Seite ist ja erschlagend.
 
Wenn dich die Seite erschlägt, musste Geld ausgeben.
1. Lingon aus dem App Store Kaufen und deinen Agent entsprechen einstellen.
2. Deinen Agent kannst du testen, in dem du den in launchd reinlädst. Wenn du was änderst, musst du ihn erst wieder entladen und wieder reinladen
=> launchctl load/unload deinagent.plist
 
Ich schau mir die Apple Seite nochmals an bevor ich Lingon in Betracht ziehe, denn eigentlich möchte ich nicht unnötig Software installieren.


Was hat eigentlich der Satz zu bedeuten:

If multiple intervals transpire before the computer is woken, those events will be coalesced into
one event upon wake from sleep.

Wenn coalesced bedeutet, dass alle "verschlafenen" Ausführungen auf einmal gemacht werden, werden dann dutzende gleiche Befehle ausgeführt oder nur einmal?

Sobald ich die .plist zusammengetragen habe, werde ich sie hier posten. Sicher wird es irgendwann mal für jemanden nützlich sein.


Anleitung

Erstelle eine Datei namens org.name.app.plist und kopiere diese in /Library/LaunchAgents. Die Datei enthält folgenden Code:

Code:
<?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>org.name.app</string>
    <key>Program</key>
        <string>/Applications/TextEdit.app/Contents/MacOS/applet</string>
    <key>StartInterval</key>
	<integer>20</integer>

</dict>
</plist>

Die Datei wird jetzt im Terminal mit launchctl load /Library/LaunchAgents/org.name.app.plist einmalig registriert. Zum Deinstallieren einfach unload statt load verwenden und die Datei wieder löschen. Dies beendet auch aktive Prozesse, wie im Beispiel TextEdit.

Diese Datei startet TextEdit alle 20 Sekunden. Ist der Computer ausgeschaltet oder im Ruhezustand, dann wird TextEdit beim nächsten Start ausgeführt. Mit 86400 Sekunden kann das Verhalten auf täglich verändert werden.


Vielleicht kann sich mal jemand mit etwas mehr Erfahrung melden, ob das zuverlässig und auch für mehrere Benutzer funktionieren wird.
 
Zuletzt bearbeitet von einem Moderator: