cron non riesce a eseguire il mio AppleScript

4

Ho il seguente codice in un file di testo (myfile.applescript):

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

Vorrei che Chrome si spegnesse ogni sera alle 21:15, quindi ho aggiunto la seguente attività cron a crontab:

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

Sfortunatamente, lo script non si sta attivando. Qualche idea?

NOTA: Sono consapevole che posso usare iCal per risolvere questo problema. Tuttavia, preferirei non ingombrare il mio calendario con un evento di attivazione di script giornaliero.

    
posta Huuuze 07.03.2012 - 16:32
fonte

4 risposte

4

Cron è stato deprecato sulle moderne versioni di OS X. Il suggerimento di Apple è di usare launchd . Troverai Lingon come uno strumento utile per la creazione di demoni launchd.

Se preferisci utilizzare iCal per avviare lo script, puoi creare un calendario separato per gli eventi script e nasconderlo alla vista. Funzionerà, ma la vista del calendario non sarà confusa.

    
risposta data 07.03.2012 - 17:28
fonte
4

Assicurati che il file ~/Desktop/myfile.applescript sia eseguibile. Puoi chiamare uno script solo per nome del file se ha il bit di esecuzione pertinente.

Considera la seguente sessione del Terminale:

$ 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!

Fino a quando non avevo i permessi di esecuzione (indicati con una 'x' nel 4o, 7o o 10o slot della stringa dei permessi), non potevo eseguirlo.

Puoi sovrascriverlo chiamando il file con il suo particolare interprete:

$ 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!
    
risposta data 07.03.2012 - 17:44
fonte
2

Ho scoperto che il mio script originale funzionava. Il problema aveva a che fare con la mia voce cron: non era terminata con un ritorno a capo. Una volta fatto ciò, il applescript è stato attivato correttamente.

    
risposta data 07.03.2012 - 23:01
fonte
1

Prova quanto segue nel tuo script.

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

Assicurati che sia chmod +x e prova dalla CLI.

    
risposta data 07.03.2012 - 20:00
fonte

Leggi altre domande sui tag