Ich versuche, ein Start-AppleScript und ein AppleScript auszuführen, das zu einer festgelegten Zeit ausgeführt wird (ich hasse den Automator / Calendar-Ansatz).
on idle
set currentTime to current date
if the weekday of currentTime is (need to do for Tuesday to Saturday) then
do shell script "kextunload /System/Library/Extensions/AppleHDA.kext " password "..." with administrator privileges
end if
--only check once a day
return 24 * 60 * 60
end idle
Das einzige Problem bei diesem Ansatz ist das Skript, das ständig ausgeführt wird und Speicher verwendet. Außerdem bin ich mir noch nicht sicher, wie ich die richtige Zeit berechnen soll. (24.60.60 ist immer 00:00, richtig?) Ich möchte es um 05:00 Uhr ausführen
Wenn ich es richtig verstehe, führt das Hinzufügen der script.scpt zu /Library/LaunchDaemons dazu, dass das Skript die ganze Zeit ausgeführt wird, auch wenn der Benutzer abgemeldet ist, oder sich mit dem Bildschirmschoner richtig anmeldet?
Ich habe über einen anderen Ansatz gelesen, der noch besser zu sein scheint und im Grunde eine Plist verwendet, um ein Skript zu einer festgelegten Zeit zu starten.
PS: Würde das alles funktionieren, wenn die Platte verschlüsselt ist? und kann ich AppleScript verwenden, um einen Benutzer beim Booten mit ausgeschaltetem Bildschirm (oder diskret) anzumelden, damit ich einige Apps öffnen kann, ohne Sicherheitsprobleme zu haben.
Kann ich Ihre Hilfe und Ratschläge haben, welcher Ansatz der beste ist? Vielen Dank im Voraus.
Sie können beim Start einen Befehl mit einer launchd-Plist ausführen, die in etwa so aussieht, in /Library/LaunchDaemons
<?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>NameYourTask</string>
<key>ProgramArguments</key>
<array>
<string>CommandToRun</string>
</array>
</dict>
</plist>
Um zu einer bestimmten Zeit zu laufen, verwenden Sie so etwas (dies läuft Montag, 1 Uhr morgens):
<?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>JobName</string>
<key>ProgramArguments</key>
<array>
<string>CommandToRun</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>1</integer>
<key>Minute</key>
<integer>0</integer>
<key>Weekday</key>
<integer>1</integer>
</dict>
<key>StandardOutPath</key>
<string>LogFilePath</string>
<key>StandardErrorPath</key>
<string>LogFilePath</string>
</dict>
</plist>
LaunchD hat viele Optionen, wie die Jobs ausgeführt werden können - es kann Prozesse überwachen und am Laufen halten, ausgeführt werden, wenn Netzwerke oder Dateien vorhanden sind usw.
Es sieht so aus, als müssten Sie Ihre Anforderungen definieren und dann ausarbeiten, wie Sie die Jobs implementieren.
Nicht darunter ist die Befehlszeichenfolge eine einzelne Zeichenfolge. Wenn Sie Argumente übergeben möchten, können Sie dies mit mehreren String-Tags tun.
<array>
<string>Command</string>
<string>Arg1</string>
<string>Arg2</string>
<string>Arg3</string>
<string>Arg4</string>
</array>
kein Hang
kextunload
erfolgen .launchd
cron
Kevin
kein Hang
kextunload
), oder ob Sie einige Anwendungen ausführen möchten. Sie erhalten wahrscheinlich bessere Antworten, wenn Sie Ihre Frage so bearbeiten, dass Ihre Absicht klar zum Ausdruck kommt, ohne bereits Annahmen über mögliche Lösungen und deren Nachteile zu treffen.