6 votes

cron ne parvient pas à exécuter mon AppleScript

J'ai le code suivant dans un fichier texte (monfichier.applescript) :

#! /usr/bin/osascript
tell application "Google Chrome" to quit

Je voudrais que Chrome s'éteigne chaque nuit à 21h15, j'ai donc ajouté la tâche cron suivante à crontab :

15 21 * * * ~/Desktop/myfile.applescript

Malheureusement, le script ne se déclenche pas. Une idée ?

NOTE : Je sais que je peux utiliser iCal pour résoudre ce problème. Cependant, je préfère ne pas encombrer mon calendrier avec un événement quotidien déclenchant un script.

4voto

jaberg Points 9509

Cron a été déprécié sur les versions modernes d'OS X. La suggestion d'Apple est d'utiliser lancé sur le marché au lieu de. Vous trouverez Lingon est un outil utile pour créer des démons launchd.

Si vous préférez utiliser iCal pour lancer le script, vous pouvez créer un calendrier séparé pour le(s) événement(s) scripté(s), et le cacher de la vue. Il fonctionnera, mais la vue de votre calendrier ne sera pas encombrée.

enter image description here

4voto

Christopher Scott Points 665

Assurez-vous que le ~/Desktop/myfile.applescript est exécutable. Vous ne pouvez appeler un script par le nom du fichier que s'il possède le bit execute correspondant.

Considérez la session suivante du Terminal :

$ ls -laFh sh.sh
-rw-rw-r--  1 jason  staff   278B Mar  2 10:18 sh.sh

$ ./sh.sh
-bash: ./sh.sh: Permission denied

$ chmod 764 sh.sh

$ ls -laFh sh.sh
-rwxrw-r--  1 jason  staff    32B Mar  7 09:40 sh.sh*

$ ./sh.sh 
Hello World!

Tant que je n'avais pas les droits d'exécution (indiqués par un 'x' dans le 4ème, le 7ème ou le 10ème emplacement de la chaîne de droits), je ne pouvais pas l'exécuter.

Vous pouvez l'ignorer en appelant le fichier avec son propre interprète :

$ chmod 664 sh.sh

$ ls -laFh sh.sh
-rw-rw-r--  1 jason  staff    32B Mar  7 09:40 sh.sh

$ ./sh.sh
-bash: ./sh.sh: Permission denied

$ sh sh.sh
Hello World!

2voto

benwh Points 176

J'ai découvert que mon script original fonctionnait. Le problème venait de mon entrée cron : elle n'était pas terminée par un retour chariot. Une fois que je l'ai fait, l'applescript s'est déclenché correctement.

1voto

user16797 Points 331

Essayez ce qui suit dans votre script.

#!/usr/bin/bash
/usr/bin/osascript -e 'tell application "Google Chrome" to quit'

Assurez-vous que c'est chmod +x et tester à partir du CLI.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X