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?