Sto cercando di eseguire un AppleScript che espelle tutte le unità (dall'eccellente risposta di Monomeeth qui ) ogni giorno alle 8 am usando launchd
. Dopo alcune ricerche, ho deciso che il modo migliore per farlo era utilizzare launchd
. Tuttavia, sto riscontrando un errore.
Il .plist
che ho nella mia directory LaunchAgents
dell'utente è il seguente:
<?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>local.SkeletonBow.EjectAllDrivesAt8</string>
<key>Program</key>
<string>/usr/bin/osascript</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/etc/Daily\ Scripts/Eject\ All.scpt</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>08</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
</dict>
</plist>
L'AppleScript in questione, Eject All.scpt
, funziona bene quando lo eseguo con osascript Eject\ All.scpt
nella mia shell zsh
.
Secondo questo sito , dovrei "caricare il lavoro" in launchctl
. L'ho fatto eseguendo, secondo le loro istruzioni, quanto segue:
launchctl load ~/Library/LaunchAgents/local.SkeletonBow.EjectAllDrivesAt8.plist
E poi ho provato a testarlo eseguendo
launchctl start local.SkeletonBow.EjectAllDrivesAt8.plist
Tuttavia, questa particolare azione provoca la visualizzazione di una croce nel terminale, implicando che qualcosa di sbagliato è successo. Suppongo che sia dovuto alla sintassi nel mio file .plist
.