问题标签 [python-daemon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
716 浏览

python - Python 的守护进程 PPID 不等于 1

在 Linux 中创建守护进程是一个相当复杂的问题,但它在daemon(7) manual. 值得庆幸的是python-daemon,Python 2 和 3 的模块实现了PEP3143,所以我正在使用它。

问题来了:当我在玩模块时,我python-daemon惊讶守护进程的PPID不是. 为什么? 1


简单的例子:

test.log启动上述脚本 20 秒后的内容(我推荐tail -f /tmp/test.log):

事实证明,带有 PID 的进程1736/lib/systemd/systemd

最近我正在C(在安装的同一台机器上systemd)和AFAIR中实现守护进程,所有守护进程都有PPID = 1. 我遇到的所有手册都提到守护进程的PPID始终是1.

systemd改了吗?是否systemd处理awaits所有进程——包括守护进程?这是守护进程的正确行为吗?


相关问题:

0 投票
1 回答
174 浏览

python - Python 守护进程被抓

我正在编写一个脚本来读取系统日志,并且在守护进程时遇到了问题。它被随机挂起,我一生都无法弄清楚为什么。这是代码:

守护进程

主要的

日志记录

我正在记录所有内容,以找出错误被捕获的位置。

当我运行它时,python3 test.py --filename access.log我得到:

这就是整个日志。它只是停止。

但是如果我运行python3 test.py,没有文件名参数,那么我会得到这个日志:

然后它无限重复,直到我停止任务。

我只是不明白为什么它会停止。如果有人可以帮助我,那就太好了。在我尝试使用python-daemon它之前,我有一个不同形式的这个脚本。所以我知道基本逻辑应该是合理的。

0 投票
2 回答
1765 浏览

python - Django模型中长时间运行的后台线程

我对 Python 和 Django 还很陌生,所以如果有更好的方法,请告诉我。我想做的是让每个设备(继承自models.Model)启动一个长时间运行的后台线程,不断检查该设备的健康状况。但是,当我运行我的代码时,它似乎不像守护进程那样执行,因为服务器运行缓慢并且不断超时。这个后台线程将(在大多数情况下)运行程序的生命周期。

以下是我的代码的简化版本:

这似乎是一个非常简单的线程使用,但每次我寻找解决方案时,建议的方法是使用 celery,这对我来说似乎有点过头了。有没有办法让这个工作而不需要像芹菜这样的东西?

0 投票
0 回答
733 浏览

python - python-daemon does not do anything

I want to use the pip package python-daemon to daemonize one of my tasks, but I can't get it to run even with the most simple example I can think of.

The following code snipplet displays "Hallo" und logs the "Before with statement", but doesn't do anything else.

The pid-File for the daemon will be created and deleted and the job lasts longer if you put in some time.sleep() inside, but it doesn't log anything. The "After with.." also never shows up in the log.

Can someone point out what I'm doing wrong here?

Thanks in advance.

0 投票
2 回答
1840 浏览

python - Python - 将 SQlite3 与 Daemonize 一起使用时未找到表错误

我有一个访问 SQlite 数据库的 slack 机器人。当我在前台运行机器人时,一切正常,但是当我将它作为守护程序运行时,它似乎连接到我的数据库,但随后在我运行的每个查询中返回“未找到表”。

问题是,这在我的最新版本之前一直有效,但我找不到发生了什么变化,所以我制作了一个精简版作为测试,但我仍然遇到同样的问题。见下文:

如果我运行 main(),我会收到松弛消息“成功了!”,但如果我将其注释掉并运行 daemon.start(),我会收到“机器人崩溃”。

当我 cat /var/log/messages 时,我看到的是:

我也尝试使用数据库的静态路径运行它,但 os.path.dirname 与我使用的所有其他脚本都运行良好。我发现另一篇文章说你必须在守护进程上下文 (main()) 中建立数据库连接,但我从一开始就这样做了。我的想法不多了。

0 投票
0 回答
569 浏览

python - 多处理队列 python-daemon

我需要带有多处理队列的 python 上的 linux 守护进程。

我已经尝试过使用 python 妖魔化,但它的 pid、访问权限和启动/停止功能存在问题。

这是通过 python-daemon 包的选项。

节目清单:

错误:

怎么了?

提前致谢。

0 投票
1 回答
479 浏览

python - python守护进程+ argparse?

我制作了一个需要一些参数来运行的脚本。最初它可以使用参数“auto”自动运行,但我正在尝试对其进行守护进程,以便它将使用指定参数作为守护进程运行脚本。问题是在决定谁解析什么时,python-daemon 和 argparse 似乎并不一致。

这是我试图使它工作的命令:

是否可以将“开始”参数传递给 python-daemon 或其他东西?或者,如果我可以摆脱 argparsing 就好了,但 'file' 参数是必须的。

0 投票
1 回答
441 浏览

python - python-daemon - 在里面运行线程

我正在使用 python-daemon,但我在守护进程中有一个线程来偶尔检查串口:

线程运行这个:

我正在使用 systemctl 使用 .service 文件来启动和停止它。当我运行时: sudo systemctl stop myservice

它在返回前等待 60 秒。我如何通过 systemctl 立即终止服务中的线程。我考虑将上下文传递给应用程序,然后重新定义:

然后向 App 添加一个关闭方法:

但是,这不会让上下文破坏 PID 并且不会正确退出上下文。我还应该在关闭方法中添加什么以使事情正常工作?

库尔特

0 投票
1 回答
306 浏览

python - Python 守护进程使用相同的对象列表

我有一个名为 People 的课程。这个类有一个列表。我不想将此列表保存在文件或数据库中,全部保存在内存中,所以我认为可行的方法是创建一个守护进程并保持进程打开,这是我的代码:

守护进程.py

还有我的主文件:

人.py

我执行以下操作:

应该python3 test.py add2返回[{'people': '1'},{'people': '2'}]

我认为正在发生的是,每次我使用该课程时,列表都会重新启动。我已经尝试__init__在守护进程上初始化类,但不起作用。

有谁知道我该如何解决这个问题?

0 投票
1 回答
1819 浏览

python-3.x - 我如何将 python 文件作为服务 python3 运行

我有一个 python 脚本,我必须作为服务/后台进程运行,我尝试过 python-daemon 但它给了我错误是否有任何好的方法可以将它作为服务运行,以便脚本可以在后台运行接受消息和处理文件?