- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我编写了一段代码,它会在执行时通知我。我想每半小时运行一次这段代码,因此创建了一个 cronjob。但是当通过 cronjob 执行时代码不起作用。
这是我的代码:
import sys
import pynotify
if __name__ == "__main__":
if not pynotify.init("icon-summary-body"):
sys.exit(1)
n = pynotify.Notification("Subject","Message","notification-message-im")
n.show() #throws error here
定时任务:
* * * * * cd /home/username/Documents && /usr/bin/python file.py >> /home/username/Desktop/mylog.log 2>&1
定时任务日志:
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
Traceback (most recent call last):
File "file.py", line 8, in <module>
n.show()
gio.Error: Cannot autolaunch D-Bus without X11 $DISPLAY
可能是什么原因?
我也尝试过使用 notify2
,但没有成功。在正常执行中工作,但不是通过 cronjob
这是 notify2 代码:
import notify2
notify2.init('app name')
n = notify2.Notification("Summary","Some body text","notification-message-im")
n.show()
notify2 脚本的 Cronjob 日志:
Traceback (most recent call last):
File "file.py", line 3, in <module>
notify2.init('app name')
File "/usr/local/lib/python2.7/dist-packages/notify2.py", line 93, in init
bus = dbus.SessionBus(mainloop=mainloop)
File "/usr/lib/python2.7/dist-packages/dbus/_dbus.py", line 211, in __new__
mainloop=mainloop)
File "/usr/lib/python2.7/dist-packages/dbus/_dbus.py", line 100, in __new__
bus = BusConnection.__new__(subclass, bus_type, mainloop=mainloop)
File "/usr/lib/python2.7/dist-packages/dbus/bus.py", line 122, in __new__
bus = cls._new_for_bus(address_or_type, mainloop=mainloop)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
如何通过 cronjob 运行此代码?
编辑
使用以下代码:-
import sys
import pynotify
import os
os.environ.setdefault('XAUTHORITY', '/home/user/.Xauthority')
os.environ.setdefault('DISPLAY', ':0.0')
if __name__ == "__main__":
if not pynotify.init("icon-summary-body"):
sys.exit(1)
n = pynotify.Notification("Subject","Message","notification-message-im")
n.show() #throws error here
我现在得到:-
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
Traceback (most recent call last):
File "file.py", line 12, in <module>
n.show() #throws error here
gio.Error: Could not connect: Connection refused
最佳答案
您是否尝试在您的 cronjob 中调用显示?
定时任务:
* * * * * DISPLAY=:0.0 python /home/username/Documents/file.py
在您的 python 代码中,您还可以尝试在开头调用 Display:
import os
# environnement vars
os.environ.setdefault('XAUTHORITY', '/home/user/.Xauthority')
os.environ.setdefault('DISPLAY', ':0.0')
此外,pynotify 不能在 root 中运行。所以你应该在没有“sudo”的情况下编写你的 crontab
crontab -e
关于在终端中工作但不在 cronjob 中工作的 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354099/
我已经安排了一些 cronjob。 当我执行 crontab -e 时,我会找到现有的 cronjobs。 * * * * * #Runs every minute 30 * * * * #Run
在 Linux Ubuntu 上,我有一个 python 脚本,可以在本地按时运行良好,每 5 分钟一次,用于 cronjob: */5 * * * * /usr/bin/python /matt/p
我的服务器上有一些 PHP 脚本,用于定期 cron 作业(例如,用于日常交流和更新排行榜)。 为了防止外人手动运行这些脚本(例如在浏览器中运行 http://url/script.php),我在运行
我的 crons 工作正常,我用简单的文件输出和 bash 脚本对其进行了测试,但在执行我的 python 脚本时,我没有尝试过任何工作。 所以这就是我所做的。 像往常一样,我在脚本中添加了一个 sh
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问题,使其成为
本文通过 Google 翻译 Cron Jobs – Linux Privilege Escalation - Juggernaut-Sec 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字
我有很多 php 脚本,我想作为 cronjob 执行。这些脚本以正确的顺序执行并且不同时运行很重要。如何设置相互运行的 cronjobs? 最佳答案 每个 cron 作业都在计划运行时运行,而不管是
我对 kubernetes 很陌生,在这里我厌倦了一个 cronjob yaml,其中每 1 分钟创建一次 pod。 apiVersion: batch/v1beta1 kind: CronJob m
因此,我设置了一个 cronjob 来运行以下命令: php/var/www/path/to/cron/do-stuff.php 路径是正确的。该目录归 www-data 所有。 该脚本执行以下操作:
我在我的 Centos 7 服务器上运行了 50 多个 cronjob,就像下面给出的那样。 curl -s https://url.com/file.php 每 10 分钟运行一次。从 shell
当我通过 SSH 连接到我的 Ubuntu 6.4 VM 并运行 python nomi.py ,我的脚本按原样执行。 我按如下方式设置了我的 crontab 文件,以便每 15 分钟运行一次脚本:
我正在尝试创建一个遵循以下规则的 cronjob: 周一至周五 8:00 - 16:00 每 2 分钟 所以基本上它必须在周一到周五运行,在 8 点到 16 点之间每隔一分钟运行一次。 在这些时候,它
所以在过去的几分钟里我一直在查找 cronjobs ......我大致了解如何将一个添加到我的网站 ubuntu 系统......我需要让我的系统每分钟运行一次 Jade 米作业(根据到我正在使用的软
我正在冒险进入设置 cronjobs 的世界,并尝试了解更多关于服务器端的信息。为此,我尝试在我的服务器上设置一个 Cronjob,以便在两天内运行两个单独的 Ruby 脚本。 问题: 我将 cron
我有手动运行良好的脚本,但在通过 cronjob 运行时没有获得所需的输出。如果脚本有任何问题,请告诉我。 #!/usr/bin/ksh file1=$(find *-* -mtime 1) file
不确定我做错了什么,但我遇到了 CronJobs 停止安排新作业的问题。似乎只有在启动新作业失败几次之后才会发生这种情况。在我的特定情况下,由于无法拉取容器镜像,Jobs 无法启动。 我并没有真正找到
我创建了一个用于生成 RSS 提要的 php 脚本,该提要最终将通过 Cronjob 运行。 所有 php 文件和生成的 RSS xml 都将位于网站的子文件夹中。如果我在本地开发机器上的同一目录中使
我在这里检查了一种解决方案,但似乎找不到。我正在处理大约300kb / sec的非常慢的wan连接。对于我的下载,我使用的是远程盒,然后将其下载到我的房子。我正在尝试运行一个cronjob,它将每小时
我希望每 15 分钟触发一次作业,但它始终每 30 分钟触发一次。 更新: 我通过运行简化了问题: kubectl run hello --schedule="*/1 * * * *" --resta
我有一个时间表: schedule: "0 10,14,18 * * *" ,我想在上午 10:00、下午 2:00、下午 6:00 运行此作业。 由于我位于 UTC+8 时区,因此这个 cronjo
我是一名优秀的程序员,十分优秀!