Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

mac:schedule [2011/04/16 21:09]
wikisysop
mac:schedule [2011/10/08 13:20] (aktuell)
wikisysop [Beschränkungen:]
Zeile 1: Zeile 1:
 [[:mac|{{ :​Apple.png?​40|}}]] [[:mac|{{ :​Apple.png?​40|}}]]
 ===== Launchd Task Scheduler konfigurieren ===== ===== Launchd Task Scheduler konfigurieren =====
- 
 Es gibt Aufgaben, welche man zB immer zur selben Zeit ausgeführt haben möchte oder vielleicht auch nur einmal zu einer bestimmten Zeit bzw während seiner Abwesenheit. In Mac OS gibt es dafür verschiedene Möglichkeiten:​ cron((http://​de.wikipedia.org/​wiki/​Cron))-,​ launchd((http://​de.wikipedia.org/​wiki/​Launchd))- und at((http://​de.wikipedia.org/​wiki/​At_%28Unix%29))-Jobs. cron ist seit Mac OS 10.4 (Tiger) nicht mehr am Start und wurde von launchd ersetzt. Dieser Artikel beschreibt das Einrichten eines scheduled tasks über launchd. Es gibt Aufgaben, welche man zB immer zur selben Zeit ausgeführt haben möchte oder vielleicht auch nur einmal zu einer bestimmten Zeit bzw während seiner Abwesenheit. In Mac OS gibt es dafür verschiedene Möglichkeiten:​ cron((http://​de.wikipedia.org/​wiki/​Cron))-,​ launchd((http://​de.wikipedia.org/​wiki/​Launchd))- und at((http://​de.wikipedia.org/​wiki/​At_%28Unix%29))-Jobs. cron ist seit Mac OS 10.4 (Tiger) nicht mehr am Start und wurde von launchd ersetzt. Dieser Artikel beschreibt das Einrichten eines scheduled tasks über launchd.
  
Zeile 17: Zeile 16:
  
 Das zentrale Konfigurations Skript hierfür ist wieder das launchd-Startskript,​ welches bereits im Artikel [[:​mac:​start_script|->​ launchd Startskript]] verwendet wurde und mit einigen Modifikationen angewiesen wird, die Systemuhr im Auge zu behalten und zu einem festgelegten Zeitpunkt das og Skript auszuführen. launchd kennt dafür zwei Keys: Das zentrale Konfigurations Skript hierfür ist wieder das launchd-Startskript,​ welches bereits im Artikel [[:​mac:​start_script|->​ launchd Startskript]] verwendet wurde und mit einigen Modifikationen angewiesen wird, die Systemuhr im Auge zu behalten und zu einem festgelegten Zeitpunkt das og Skript auszuführen. launchd kennt dafür zwei Keys:
- 
-  
  
 ==== StartInterval:​ ===== ==== StartInterval:​ =====
- 
 Ein integer-Wert((http://​de.wikipedia.org/​wiki/​Integer_%28Datentyp%29)) der launchd veranlasst den Job alle n-Sekunden zu starten. Ein integer-Wert((http://​de.wikipedia.org/​wiki/​Integer_%28Datentyp%29)) der launchd veranlasst den Job alle n-Sekunden zu starten.
  
 Folgende launchd-Konfigurationsdatei führt das og Skript zB alle 10 Sekunden aus: Folgende launchd-Konfigurationsdatei führt das og Skript zB alle 10 Sekunden aus:
  
-<code xml 123|~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist>​+<code xml|~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist>​
 <?xml version="​1.0"​ encoding="​UTF-8"?> ​                       <?xml version="​1.0"​ encoding="​UTF-8"?> ​                      
 <​!DOCTYPE plist PUBLIC "​-//​Apple Computer//​DTD PLIST <​!DOCTYPE plist PUBLIC "​-//​Apple Computer//​DTD PLIST
Zeile 55: Zeile 51:
 <​xterm>​$ <fc #​008000>​launchctl unload ~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist</​fc>​ <​xterm>​$ <fc #​008000>​launchctl unload ~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist</​fc>​
 </​xterm>​ </​xterm>​
- 
  
 ==== StartCalendarInterval:​ ===== ==== StartCalendarInterval:​ =====
- 
 In einem dictionary-Tag wird, basierend auf täglich, wöchentlich oder monatlich zu einem bestimmter Zeitpunkt zum Starten des Jobs festgelegt. In einem dictionary-Tag wird, basierend auf täglich, wöchentlich oder monatlich zu einem bestimmter Zeitpunkt zum Starten des Jobs festgelegt.
  
-Um ein Skript zu einem bestimmten Zeitpunkt zu starten, benötigen Sie die >>​StartCalendarInterval<<​ Anweisung im launchd Startskript. Folgendes Skript starten zB das og Skript am Sonntag, den 31.10 um 10:45:+Um ein Skript zu einem bestimmten Zeitpunkt zu starten, benötigen Sie die >><fc #008000>​StartCalendarInterval</fc><< Anweisung im launchd Startskript. Folgendes Skript starten zB das og Skript am Sonntag, den 31.10 um 10:45:
  
 <code xml|~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist>​ <code xml|~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist>​
Zeile 101: Zeile 95:
 <​xterm>​$ <fc #​008000>​launchctl unload ~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist</​fc>​ <​xterm>​$ <fc #​008000>​launchctl unload ~/​Library/​LaunchAgents/​org.prontosystems.schedule.plist</​fc>​
 </​xterm>​ </​xterm>​
- 
  
 ==== Zeitschlüssel ==== ==== Zeitschlüssel ====
- 
 launchd kennt folgende Zeitschlüssel im **StartCalendarInterval**:​ launchd kennt folgende Zeitschlüssel im **StartCalendarInterval**:​
  
-<code xml>+<code xml|StartCalendarInterval>
 <​integer>​Hour</​integer>​ <​integer>​Hour</​integer>​
 Die Stunde in der der Job ausgeführt wird. Die Stunde in der der Job ausgeführt wird.
Zeile 123: Zeile 115:
 Der Wochentag an dem der Job ausgeführt werden soll (0 = Sonntag, 1 = Montag ...) Der Wochentag an dem der Job ausgeführt werden soll (0 = Sonntag, 1 = Montag ...)
 </​code>​ </​code>​
-\\ \\ +
 ==== Beispiele ==== ==== Beispiele ====
-  
 Hier noch einige weitere Beispiele für periodische Startzeiten,​ welche die Anweisung in der og plist im dict-Tag ersetzen sollten: Hier noch einige weitere Beispiele für periodische Startzeiten,​ welche die Anweisung in der og plist im dict-Tag ersetzen sollten:
  
 Folgende Anweisung führt den Job zu jeder vollen Stunde aus: Folgende Anweisung führt den Job zu jeder vollen Stunde aus:
  
-<code xml>+<code xml|Ausführung zu jeder vollen Stunde>
 <​key>​StartCalendarInterval</​key>​ <​key>​StartCalendarInterval</​key>​
 <​dict>​ <​dict>​
Zeile 140: Zeile 131:
 Folgende Anweisung führt den Job jeden Montag um 12:00 Uhr aus: Folgende Anweisung führt den Job jeden Montag um 12:00 Uhr aus:
  
-<code xml>+<code xml|Ausführung jeden Montag 12:00 Uhr>
 <​key>​StartCalendarInterval</​key>​ <​key>​StartCalendarInterval</​key>​
 <​dict>​ <​dict>​
Zeile 151: Zeile 142:
 </​dict>​ </​dict>​
 </​code>​ </​code>​
-\\ \\  
  
 ==== Ablageorte: ==== ==== Ablageorte: ====
- 
 Ähnlich wie schon bei den Startskripts ist auch bei den Skripts für die zeitgesteuerte Ausführung der Ablageort ausschlaggebend,​ wann bzw. ob ein Job ausgeführt wird. Ähnlich wie schon bei den Startskripts ist auch bei den Skripts für die zeitgesteuerte Ausführung der Ablageort ausschlaggebend,​ wann bzw. ob ein Job ausgeführt wird.
  
-<​code ​applescript>+<​code ​xorg_conf|Speicherorte:​>
 ~/​Library/​LaunchAgents ​       # → Userskript, Owner = $USER; wird nur ausgeführt,​ wenn $USER eingeloggt ist. ~/​Library/​LaunchAgents ​       # → Userskript, Owner = $USER; wird nur ausgeführt,​ wenn $USER eingeloggt ist.
 /​Library/​LaunchAgents ​        # → Owner = root; wird nur ausgeführt,​ wenn ein (beliebiger) User eingeloggt ist /​Library/​LaunchAgents ​        # → Owner = root; wird nur ausgeführt,​ wenn ein (beliebiger) User eingeloggt ist
-/​Library/​LaunchDaemons ​       # → Owner = root; wird schon ausgeführt,​ wenn das System gestartet ist. Unabhängig +/​Library/​LaunchDaemons ​       # → Owner = root; wird schon ausgeführt,​ wenn das System gestartet ist. Unabhängig davon, ob ein User angemeldet ist oder nicht.
-                                  ​davon, ob ein User angemeldet ist oder nicht.+
 </​code>​ </​code>​
-\\ \\  
  
 ==== Aktive Jobs anzeigen lassen ==== ==== Aktive Jobs anzeigen lassen ====
- 
 Um sich die aktiven Jobs anzeigen zu lassen, verwenden Sie wieder das >><​fc #​008000>​launchctl</​fc><<​ Utility mit dem Parameter >><​fc #​008000>​list</​fc><<:​ Um sich die aktiven Jobs anzeigen zu lassen, verwenden Sie wieder das >><​fc #​008000>​launchctl</​fc><<​ Utility mit dem Parameter >><​fc #​008000>​list</​fc><<:​
  
Zeile 173: Zeile 159:
  
 Ihr Job wird in dieser Liste, sofern er aktiv ist, mit dem in der plist im Key >><​fc #​008000>​Label</​fc><<​ gekennzeichneten String angezeigt. Wenn Sie das Kommando als normaler Benutzer ausführen, werden Ihnen die aktiven Jobs des Benutzers angezeigt (<fc #​008000>​~/​Library/​LaunchAgents</​fc>​). Wenn Sie es als root ausführen (sudo), entsprechend die aktiven Jobs, die root gehören und in (<fc #​008000>/​Library/​Launch{Agents|Daemons}</​fc>​ bzw. <fc #​008000>/​System/​Library/​Launch{Agents|Daemons}</​fc>​) abgelegt sind. Ihr Job wird in dieser Liste, sofern er aktiv ist, mit dem in der plist im Key >><​fc #​008000>​Label</​fc><<​ gekennzeichneten String angezeigt. Wenn Sie das Kommando als normaler Benutzer ausführen, werden Ihnen die aktiven Jobs des Benutzers angezeigt (<fc #​008000>​~/​Library/​LaunchAgents</​fc>​). Wenn Sie es als root ausführen (sudo), entsprechend die aktiven Jobs, die root gehören und in (<fc #​008000>/​Library/​Launch{Agents|Daemons}</​fc>​ bzw. <fc #​008000>/​System/​Library/​Launch{Agents|Daemons}</​fc>​) abgelegt sind.
- 
  
 ==== Disabled Key vs. override.plist ==== ==== Disabled Key vs. override.plist ====
- 
 Eine launchd plist kann einen optionalen Key >><​fc #​008000>​Disabled</​fc><<​ mit den Werten >><​fc #​008000>​true</​fc><<​ oder >><​fc #​008000>​false</​fc><<​ beinhalten (false = Default). Existiert dieser Key und hat den Wert >><​fc #​008000>​true</​fc><<​ wird diese plist beim Ausführen der Startobjekte ignoriert. Ist der Wert auf >><​fc #​008000>​false</​fc><<​ gesetzt (oder schlicht nicht vorhanden) wird das Objekt das nächste mal geladen, wenn sich der Benutzer einloggt oder das System gestartet wird, je nachdem welche Art von Startobjekt es betrifft (Siehe: Ablageorte) oder unmittelbar,​ wenn das Kommando >><​fc #​008000>​launchctl load</​fc><<​ auf die pilst ausgeführt wird. Eine launchd plist kann einen optionalen Key >><​fc #​008000>​Disabled</​fc><<​ mit den Werten >><​fc #​008000>​true</​fc><<​ oder >><​fc #​008000>​false</​fc><<​ beinhalten (false = Default). Existiert dieser Key und hat den Wert >><​fc #​008000>​true</​fc><<​ wird diese plist beim Ausführen der Startobjekte ignoriert. Ist der Wert auf >><​fc #​008000>​false</​fc><<​ gesetzt (oder schlicht nicht vorhanden) wird das Objekt das nächste mal geladen, wenn sich der Benutzer einloggt oder das System gestartet wird, je nachdem welche Art von Startobjekt es betrifft (Siehe: Ablageorte) oder unmittelbar,​ wenn das Kommando >><​fc #​008000>​launchctl load</​fc><<​ auf die pilst ausgeführt wird.
  
Zeile 182: Zeile 166:
  
 ==== Beschränkungen:​ ==== ==== Beschränkungen:​ ====
 +<note important>​**Note:​** Beide Varianten haben das Problem, dass die Jobs **nicht** zur eingestellten Zeit ausgeführt werden, wenn sich das System im Sleep-Modus befindet. Ab 10.4 (Tiger) werden die Jobs aber immerhin dann ausgeführt,​ wenn das System aus dem Sleep-Modus kommt. Ist das System zum festgelegten Zeitpunkt ausgeschaltet,​ wird der Job auch dann nicht ausgeführt,​ wenn später das System wieder eingeschaltet wird!</​note>​
  
-<note important>​**Note:​** Beide Varianten haben das Problem, dass die Jobs **nicht** zur eingestellten Zeit ausgeführt werden, wenn sich das System im Sleep-Modus befindet. Ab 10.4 (Tiger) werden die Jobs aber immerhin dann ausgeführt,​ wenn das System aus dem Sleep-Modus kommt. Ist das System zum festgelegten Zeitpunkt ausgeschaltet,​ wird der Job auch dann nicht ausgeführt,​ wenn später das System wieder eingeschaltet wird!</​note>​ 
-\\  
 **Verwandte Artikel:** **Verwandte Artikel:**
 [[:​mac:​start_script|->​ Apple Launchd Startskript erstellen]] [[:​mac:​start_script|->​ Apple Launchd Startskript erstellen]]
Zeile 190: Zeile 173:
 [[:​tux:​cron|->​ Der UNIX Task Scheduler »cron«]] [[:​tux:​cron|->​ Der UNIX Task Scheduler »cron«]]
 [[:​mac:​launchd|->​ Der Apple launchd Prozess]] [[:​mac:​launchd|->​ Der Apple launchd Prozess]]
-\\  + 
- --- //pronto 2010/10/31 02:01//<fbl>+ --- //pronto 2010/10/31 02:01//
 {{keywords>​launchd launchctl scheduled task zeitgesteuert startinterval startcalendarinterval overrides.plist true false}} {{keywords>​launchd launchctl scheduled task zeitgesteuert startinterval startcalendarinterval overrides.plist true false}}
mac/schedule.1302980942.txt.gz (5162 views) · Zuletzt geändert: 2011/04/16 21:09 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0