2011-05-31 89 views
3

我编写了一个python应用程序,它运行OK作为cron作业。后来我添加了一些库(例如pynotify和其他*),因为我想通过消息来通知描述正在发生的事情,但似乎cron无法运行这样的应用程序。
作为cron作业的通知

你知道一些替代方法如何每五分钟运行一次这个应用程序吗?我正在使用Xubuntu。

  • import gtk, pygtk, os, os.path, pynotify

我可以运行没有问题,而不cron中的应用。

Cron似乎运行该应用程序,但它不会显示通知消息。在/var/log/cron.log没有错误。该应用程序每分钟执行没有问题。

我的crontab: */1 * * * * /home/xralf/pythonsrc/app

谢谢

+1

详细信息。你得到的错误是什么? – 2011-05-31 18:20:11

+0

@Nofaul Ibrahim详细添加了。 – xralf 2011-05-31 18:53:17

回答

0

我看不出与pynotify cron作业什么问题?你得到的错误是什么?

你可以单独运行你的python代码来检查你的python代码是否工作得很好,但只有cron失败了吗?

芹菜分布式作业队列&用Python编写的任务管理器,但它可能太多,您的需求。

如果您知道您的程序将在5分钟内关闭,Supervisord还可以执行某种cron任务。所以你可以配置supervisord在不久之后开始任务。他们都不像cron工作那么容易。

+0

我在问题中添加了更多信息。 – xralf 2011-05-31 18:46:05

+1

他正在导入GTK,如果他的cron作业尝试运行GTK应用程序,则会失败,因为cron守护程序无法访问X服务器。 – nos 2011-05-31 18:46:46

0

您最有可能的问题是路径问题。除非您专门设置它,否则Cron没有用户路径。因此,如果您的库安装在非标准位置或用户帐户中,cron将需要完整路径,否则您需要在crontab文件中设置路径变量。

PATH=/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/any/other/path 

添加到您的crontab文件,看看它是否工作。

1

如果您的python脚本本身运行良好,并且只在cron失败,那么很有可能库中的路径未设置在cron中。下面是从我cronjobs在那里我的路径添加到的cron的一个执行文件

00 12 * * * LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib && export LD_LIBRARY_PATH && /path/to/my/script 

你必须替换上面你的图书馆各路径中的路径之前的例子。

1

如果cron作业为“你”,并且如果你设置了DISPLAY var(export DISPLAY =:0),你应该没有问题。

+0

这没有帮助。 – xralf 2011-05-31 19:03:16

+0

你必须更具体。你有什么错误吗?如果您没有任何错误,您是否有邮件代理向您提供cron错误?它是否默默地失败? – EightyEight 2011-06-02 17:26:09

+0

@EightyEight看看更新后的问题。 – xralf 2011-06-02 18:22:38