gpt4 book ai didi

python - pynotify 不适用于守护进程

转载 作者:行者123 更新时间:2023-12-01 05:50:23 24 4
gpt4 key购买 nike

我正在尝试创建小型通知守护进程

pynotify 在主线程中工作但 pynotify 在守护进程运行周期中不起作用。显示方法程序之后只是等待一些东西我在这里获取了守护进程样本: http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/

我的守护进程:

import pynotify
import sys, time
from daemon import Daemon
class NotifyDaemon(Daemon):
def run(self):
i = 9
while True:
pynotify.init('icon-summary-body')
n = pynotify.Notification('Test', 'text ')
print 'Test from stdout'# OK but only one message
n.show() # not OK
time.sleep(1)
if __name__ == "__main__":
if not pynotify.init('icon-summary-body'):
print 'PyNotify init failed!'
exit(2)
daemon = NotifyDaemon('/tmp/reminderdaemon.pid', stdout='/dev/stdout')
if len(sys.argv) == 2:
if 'start' == sys.argv[1]:
n = pynotify.Notification('Daemon starts!')#this message is ok
n.show()# OK
daemon.start()
elif 'stop' == sys.argv[1]:
daemon.stop()
elif 'restart' == sys.argv[1]:
daemon.restart()
else:
print "Unknown command"
sys.exit(2)
sys.exit(0)
else:
print "usage: %s start|stop|restart" % sys.argv[0]
sys.exit(2)

操作系统:Ubuntu WM:太棒了

还有出路吗?PS 抱歉我的写作错误。英语不是我的母语

最佳答案

您可以放弃守护程序代码。如果您想要一个在启动时运行的进程,请使用 upstart。您需要做的就是在 /etc/init/my_server.conf 中放置一个文件,其中包含如下内容:

description "My Server"
author "Dark Daiver dark@dd.com"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

exec python /home/dd/my_server.py

如果进程也终止,这也会重生。

因此,如果您的 my_server.py 文件中只有:

import pynotify


if __name__ == "__main__":

pynotify.init('icon-summary-body')
n = pynotify.Notification('Test', 'text ')

while True:
n.show() # not OK
time.sleep(1)

它将在启动时启动并每秒显示一次通知。

关于python - pynotify 不适用于守护进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14535803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com