launchd läuft Daemons ( /Library/LaunchDaemons oder /System/Library/LaunchDaemons ) als root ausführen, unabhängig davon, ob Benutzer angemeldet sind oder nicht. Agenten starten ( /Library/LaunchAgents/ oder ~/Library/LaunchAgents/ ) werden ausgeführt, wenn ein Benutzer als dieser Benutzer angemeldet ist. Sie können setuid nicht verwenden, um den Benutzer zu ändern, der das Skript in Daemons ausführt. Das /System Das Verzeichnis ist für Mac OS X-Aufgaben reserviert launchd plists entweder in die /Library oder der ~/Library Ordner, wie es Sinn macht.
Der erste Schritt ist also festzustellen, ob Sie einen Agenten oder einen Daemon erstellen.
Der zweite Schritt besteht darin, Ihre .plist Datei. Sie können GUI-basierte Programme wie verwenden Lingon um dabei zu helfen oder verwenden Sie einfach Ihren bevorzugten Texteditor:
Eine Probe .plist zum stündlichen Ausführen eines Skripts ( StartInterval oder StartIntervalCalendar sind die Schlüssel, die wir wollen - StartInterval damit ein Gegenstand jeden passiert x Sekunden, StartIntervalCalendar für eine bestimmte Zeit und / oder ein bestimmtes Datum. Sehen 126907 bei SuperUser für ein Beispiel, das ich mit StartCalendarInterval gemacht habe):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>local.IDENTIFIER_HERE.SOMETHING</string>
<key>OnDemand</key>
<true/>
<key>RunAtLoad</key>
<false/>
<key>UserName</key>
<string>USERNAME HERE</string>
<key>Program</key>
<string>/PATH/TO/SCRIPT</string>
<key>ProgramArguments</key>
<array>
<string>Argument_1</string>
<string>Argument_2</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
Modifiziere den .plist Zeigen Sie bei Bedarf auf Ihr Skript und ggf. auf Argumente (Argumente befinden sich in separaten Zeilen), und speichern Sie die Datei mit demselben Namen wie der Label-Wert, jedoch mit .plist Am Ende. (zum Beispiel, local.my-mac.flickrstats würde gespeichert werden als local.my-mac.flickrstats.plist ). Wenn Sie das noch nicht getan haben, verschieben Sie es .plist Datei an /Library/LaunchDaemons bei der Erstellung eines Daemons (läuft die ganze Zeit) oder zu ~/Library/LaunchAgents (nur du bist eingeloggt) oder /Library/LaunchAgents (Jeder Benutzer ist angemeldet).
Zum Starten des Jobs, den Sie ausführen möchten launchctl nach Bedarf, um die Datei zu laden. Für Artikel in /Library, Sie sollten sudo verwenden: zum Beispiel sudo launchctl load -w /PATH/TO/PLIST
Beachten Sie auch die folgenden Fragen zum Super User: Starten Sie den Befehl als root , Laden Sie einen systemweiten Daemon , und Wie bekomme ich ein Skript, das jeden Tag ausgeführt wird?