Ich habe ein Skript, das ich täglich auf 3:30 Uhr einstellen möchte, und es wird zur eingestellten Zeit ausgeführt, aber es wird auch bei jedem Neustart des Computers ausgeführt, was ich nicht möchte.
Wie kann ich dies mit nur dem Zeitplan zum Laufen bringen und nicht bei jedem Start des Computers ausführen?
Hier ist meine Liste:
<?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>com.xxxxx.xxxx</string>
<key>ProgramArguments</key>
<array>
<string>/Library/Scripts/script.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>30</integer>
<key>Hour</key>
<integer>3</integer>
</dict>
</dict>
</plist>
Sie müssen einen Schlüssel "Run at Load" hinzufügen und auf "false" setzen.
<key>RunAtLoad</key>
<false/>
Dadurch wird die Ausführung beim Start und nur zu Ihrer manuell festgelegten Zeit verhindert.
<dict> <key>RunAtLoad</key> <false/> <dict>
Danke an alle, das hat gerade funktioniert! Die erste Antwort hat funktioniert. Mein Problem war, dass ich die erste launchd .plist nicht entladen habe, obwohl ich die Datei gelöscht habe. Es erinnert sich bei jedem Neustart daran.
Am Ende habe ich zwei iMacs neu erstellt und die launchd .plist mit dem hinzugefügten Befehl getestet.
Getestet mit Laden und Entladen, um es zu bestätigen. Nach unzähligen Neustarts und dem Einstellen der Uhr, um sie dann immer wieder zu testen, kann ich bestätigen, dass sie so funktioniert, wie wir es brauchen :)
Der Computer kann beliebig neu starten, führt das Skript jedoch erst zur geplanten Zeit aus.
Fuhrmann