launchduruchamia demony ( /Library/LaunchDaemonslub /System/Library/LaunchDaemons) jako root i uruchamia je bez względu na to, czy użytkownicy są zalogowani, czy nie. Agenty uruchamiania ( /Library/LaunchAgents/lub ~/Library/LaunchAgents/) są uruchamiane, gdy użytkownik jest zalogowany jako ten użytkownik. Nie można użyć setuid do zmiany użytkownika uruchamiającego skrypt na demonach. /SystemKatalog jest zarezerwowany dla systemu Mac OS X zadań więc polecam oddanie launchdlisty właściwości albo do /Librarylub ~/Libraryfolderu jak ma to sens.
Więc pierwszym krokiem jest ustalenie, czy tworzysz agenta, czy demona.
Drugim krokiem jest utworzenie .plistpliku. Możesz użyć programów opartych na GUI, takich jak Lingon, aby w tym pomóc lub po prostu użyć swojego ulubionego edytora tekstu:
Przykład .plisturuchomienia skryptu co godzinę ( StartIntervallub StartIntervalCalendarsą to klucze, których potrzebujemy - StartIntervalaby element pojawiał się co xsekundę, StartIntervalCalendardla określonej godziny i / lub daty. Zobacz 126907 w SuperUser dla przykładu, który wykonałem za pomocą StartCalendarInterval):
<?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>
Zmodyfikuj .plistodpowiednio, aby wskazać skrypt i wszelkie argumenty, jeśli to konieczne (argumenty znajdują się w osobnych wierszach) i zapisz plik o tej samej nazwie co wartość Label, ale z .plistkońcem. (na przykład local.my-mac.flickrstatszostanie zapisany jako local.my-mac.flickrstats.plist). Jeśli jeszcze tego nie zrobiłeś, przenieś ten .plistplik do /Library/LaunchDaemonspodczas tworzenia demona (działa cały czas) lub do ~/Library/LaunchAgents(tylko jesteś zalogowany) lub /Library/LaunchAgents(dowolny użytkownik jest zalogowany).
Aby rozpocząć zadanie, które chcesz uruchomić launchctlw razie potrzeby, załaduj plik. W przypadku przedmiotów w /Librarynależy użyć sudo: na przykładsudo launchctl load -w /PATH/TO/PLIST
W celach informacyjnych zapoznaj się również z następującymi pytaniami na temat superużytkownika : Uruchom komendę jako root , Załaduj ogólnosystemowego demona i Jak mogę uzyskać skrypt do uruchamiania codziennie