cron no está ejecutando mi AppleScript

4

Tengo el siguiente código en un archivo de texto (myarchivo.applescript):

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

Me gustaría que Chrome se cierre cada noche a las 9:15 p.m., así que agregué la siguiente tarea cron a crontab:

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

Lamentablemente, el script no se está activando. ¿Algún pensamiento?

NOTA: Soy consciente de que puedo usar iCal para resolver este problema. Sin embargo, preferiría no saturar mi calendario con un evento diario de activación de scripts.

    
pregunta Huuuze 07.03.2012 - 16:32

4 respuestas

4

Cron ha quedado en desuso en las versiones modernas de OS X. La sugerencia de Apple es usar launchd en su lugar. Encontrará que Lingon es una herramienta útil para crear daemons launchd.

Si prefiere usar iCal para iniciar el script, puede crear un calendario separado para eventos con script y ocultarlo de la vista. Funcionará, pero su vista de calendario no se desordenará.

    
respondido por el jaberg 07.03.2012 - 17:28
4

Asegúrese de que el archivo ~/Desktop/myfile.applescript es ejecutable. Solo puede llamar a un script por nombre de archivo si tiene el bit de ejecución relevante.

Considere la siguiente sesión de 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!

Hasta que no tuviera permisos de ejecución (denotados con una 'x' en la cuarta, séptima o décima ranura de la cadena de permisos), no pude ejecutarlo.

Puede anularlo llamando al archivo con su intérprete particular:

$ 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!
    
respondido por el Jason Salaz 07.03.2012 - 17:44
2

Descubrí que mi guión original funcionó. El problema tenía que ver con mi entrada cron: no se terminó con un retorno de carro. Una vez que hice eso, el Applecript se activó correctamente.

    
respondido por el Huuuze 07.03.2012 - 23:01
1

Prueba lo siguiente en tu script.

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

Asegúrese de que sea chmod +x y realice una prueba desde CLI.

    
respondido por el afragen 07.03.2012 - 20:00

Lea otras preguntas en las etiquetas