python,cron和与Growl的互动


1

我有以下名为temp.py的python文件

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'命令行可以正常工作(它只需要显示growl通知)

我用'crontab -e'打开crontab(如果有帮助的话,我在OSX上)。 我添加了这一行

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

我希望程序每分钟从早上8点到晚上23点执行 - 确实如此,'running.txt'文件正在填满 - 但我没有得到咆哮通知 - 任何想法?


1
可能无法从那里执行growlnotify,因为growl依赖于图形环境(以及更多?)。检查日志文件是否有错误。
ggustafsson

Answers:


1

crontab中的默认路径是 /usr/bin:/bin。如果你在其他地方安装了growlnotify /usr/local/bin/,您必须在脚本中指定完整路径。


是的 - 虽然是这个答案和评论的结合让我在那里。
Joe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.