python, cron и взаимодействие с Growl

369
Joe

У меня есть следующий файл python с именем 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" 

он отлично работает из командной строки с 'python temp.py' и `sudo python temp.py '(все, что нужно сделать, это отобразить уведомление о рычании)

Я открываю crontab с помощью 'crontab -e' (я нахожусь на OSX, если это помогает. Я добавляю строку

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

Я ожидаю, что программа будет выполняться каждую минуту с 8 утра до 23 вечера - и это происходит, файл 'running.txt' заполняется - но я не получаю уведомления рычание - какие-либо идеи?

1
Оттуда может быть невозможно выполнить growlnotify, потому что рычание зависит от графической среды (и больше?). Проверьте ваши файлы журнала на наличие ошибок. ggustafsson 11 лет назад 1

1 ответ на вопрос

1
user495470

Путь по умолчанию в crontab - это /usr/bin:/bin. Если вы установили Growlnotify в другом месте, как /usr/local/bin/, вы должны указать полный путь в сценарии.

Да - хотя это была комбинация этого ответа и комментария, который привел меня туда. Joe 11 лет назад 0