J'ai une application qui est écrite dans le langage AppleScript qui vérifie si l'état S.M.A.R.T. est 'Vérifié', si ce n'est pas le cas, elle m'affichera automatiquement une alerte avec une boîte de dialogue. Mais j'ai besoin qu'elle s'exécute toutes les 30 minutes. J'ai utilisé cron
auparavant mais cela ne fonctionne jamais avec l'extension .app. Comment puis-je accomplir l'exécution de l'application à intervalles réguliers en utilisant launchd?
Il semble que cela ne fonctionne pas, j'utilise un fichier .scpt. Pouvez-vous m'aider avec un fichier .plist complet?
2 votes
Launchd ne fonctionne pas avec les bundles d'applications (qui ne sont qu'un dossier). Vous devez toujours choisir le binaire (par exemple /usr/local/sbin/smartmontool or *.app/Contents/MacOS/app_binary)
0 votes
Pas que je sois contre AppleScript, mais cela ne serait-il pas beaucoup, beaucoup plus facile en bash?
0 votes
@Allan Cela dépend en partie de la facilité avec laquelle on peut écrire des scripts en
bash
par rapport à AppleScript. Il pourrait être utile d'utiliser une combinaison des deux. Utilisezbash
pour vérifier le statut S.M.A.R.T. et AppleScript viaosascript
pour afficher une boîte de dialogue ou une notification dans le Centre de notifications. Mais c'est aussi à cela que sertdo shell script
en AppleScript.0 votes
@user3439894 Pour obtenir ce statut, AS devrait (au minimum) exécuter une commande shell en bash de toute façon (
diskutil info diskX | grep -i smart
). Ce serait le cœur du script.0 votes
En AppleScript, par exemple :
afficher le dialogue "État SMART : " & (do shell script "diskutil info disk0 | awk '/SMART Status:/{print $3}'") boutons {"OK"} bouton par défaut 1
0 votes
Plutôt que de clore cela comme trop large, je vais répondre comme si vous demandiez des outils suggérés pour faciliter le débogage de votre configuration de lancement. Je ne dis pas de ne pas apprendre
launchd
etlaunchctl
car ils sont très puissants, juste que votre question pourrait être un peu trop large pour une réponse en deux ou trois paragraphes. De plus - Cela n'empêche pas quelqu'un d'être gentil et de faire tout le travail pour vous.