Python, Cron und die Interaktion mit Growl

613
Joe

Ich habe die folgende Python-Datei namens temp.py

import subprocess p = subprocess.Popen('growlnotify -m \"Program is not running\"', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)  retval = p.wait() print "end" 

es funktioniert gut von der Kommandozeile aus mit 'python temp.py' und `sudo python temp.py '(es muss nur die Growl-Benachrichtigung angezeigt werden)

Ich öffne Crontab mit 'Crontab -e' (ich bin unter OSX, wenn das hilft. Ich füge die Zeile hinzu

  • 8-23 * * * python /Users/xxx/Dropbox/scripts/temp.py >> /Users/xx/running.txt

Ich gehe davon aus, dass das Programm jede Minute von 8:00 Uhr bis 23:00 Uhr ausgeführt wird. Die Datei 'running.txt' füllt sich zwar - aber ich bekomme keine Knurren-Benachrichtigungen - keine Ideen?

1
Es ist möglicherweise nicht möglich, Growlnotify von dort aus auszuführen, da Growl von der grafischen Umgebung (und mehr?) Abhängig ist. Überprüfen Sie Ihre Protokolldateien auf Fehler. ggustafsson vor 11 Jahren 1

1 Antwort auf die Frage

1
user495470

Der Standardpfad in crontab lautet /usr/bin:/bin. Wenn Sie growlnotify woanders installiert haben /usr/local/bin/, müssen Sie den vollständigen Pfad im Skript angeben.

Ja - obwohl es die Kombination aus dieser Antwort und dem Kommentar war, die mich dort hingebracht hat. Joe vor 11 Jahren 0