J'essaie d'exécuter un AppleScript qui éjecte tous les lecteurs (d'après l'excellente réponse de Monomeeth ici ) tous les jours à 8 heures en utilisant launchd
. Après quelques recherches, j'ai décidé que la meilleure façon de faire était d'utiliser launchd
. Cependant, je me heurte à une erreur.
El .plist
que j'ai dans mon utilisateur LaunchAgents
est le suivant :
<?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 en question, Eject All.scpt
fonctionne bien lorsque je l'exécute avec osascript Eject\ All.scpt
dans mon zsh
coquille.
Selon ce site je devrais "charger le travail" dans launchctl
. J'ai fait cela en exécutant, selon leurs instructions, ce qui suit :
launchctl load ~/Library/LaunchAgents/local.SkeletonBow.EjectAllDrivesAt8.plist
Puis j'ai essayé de le tester en exécutant
launchctl start local.SkeletonBow.EjectAllDrivesAt8.plist
Cependant, cette action particulière entraîne l'affichage d'une croix dans le terminal, ce qui implique que quelque chose de mal s'est produit. Je suppose que cela est dû à la syntaxe de mon fichier .plist
fichier.