4

pynotify を使用してアラートを出すスクリプトを作成しました。実行すると問題なく動作しますが ( python script.py)、cron から実行する00 * * * * myname python ~/scripts/script.pyと動作しません。理由はわかりません。スニペットは次のとおりです。

        if os.path.isfile(os.path.expanduser('~/.thumbnails/normal')+'/'+thumbnail):
            n = pynotify.Notification(video_file[0], 'finished download', os.path.expanduser('~/.thumbnails')+'/'+thumbnail)
        else:
            n = pynotify.Notification(video_file[0], 'finished download', '/usr/share/icons/gnome/48x48/mimetypes/gnome-mime-application-x-shockwave-flash.png')
        print n
        n.show()

出力を ~/log.file に送信する<pynotify.Notification object at 0x16d4e60 (NotifyNotification at 0x13804e0)>と、エラーが発生しないため、他にどこを見ればよいかわかりません。

4

1 に答える 1

5

私は cron ジョブにはそれほど詳しくありませんが、pynotify については少し知っています。libnotify といくつかの DBUS を使用するため、どこかで DBUS と iirc を呼び出し、通知を表示するディスプレイ ID も渡します。

デフォルトでは、cron は GUI アプリケーションでは動作しません。使用するディスプレイを指定する必要があります。

00 * * * * myname env DISPLAY=:0 python ~/scripts/script.py

これにより、cron が現在のディスプレイ (デスクトップ) を使用するようになります。

Ubuntu で実行している場合は、このページに興味があるかもしれません:
https://help.ubuntu.com/community/CronHowto

于 2010-11-26T00:59:44.130 に答える