问题标签 [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 投票
1 回答
130 浏览

python - 覆盖 DaemonRunner 中的静态成员

我正在尝试覆盖 python 标准守护进程库中的 DaemonRunner(在这里找到https://pypi.python.org/pypi/python-daemon/

DaemonRunner 响应启动、停止和重新启动的命令行参数,但我想为状态添加第四个选项。

我要覆盖的类看起来像这样:

我试图像这样覆盖它:

这在某种程度上可行,但问题是 DaemonRunner 的每个实例现在都有新的行为。是否可以在不修改 DaemonRunner 的每个实例的情况下覆盖它?

0 投票
2 回答
2817 浏览

python - Python 3.3.4:python-daemon-3K;跑步者的使用方法

努力尝试让 python 守护程序使用 Python 3.3.4 工作。我使用来自 PyPi 的最新版本的 python-daemon-3K 即 1.5.8

起点是找到以下代码如何在Python中创建守护进程?我相信是 2.x Python 的代码。

试图运行这个我得到以下错误。

python mydaemon.py start
Traceback(最近一次调用最后):文件“mydaemon.py”,第 60 行,在 daemon_runner = runner.DaemonRunner(app) 文件“/depot/Python-3.3.4/lib/python3.3/site -packages/python_daemon_3K-1.5.8-py3.3.egg/daemon/runner.py",第 89 行,在init app.stderr_path 中,'w+',buffering=0) ValueError: can't have unbuffered text I/O

任何指针如何翻译以使用 Python 3.3.4 或在 python-daemon-3K 中使用运行器的一个很好的例子

谢谢德里克

0 投票
0 回答
385 浏览

python - Python 脚本作为 init.d 中的服务,值得守护吗?

我有几个我想在系统中作为服务的 python 脚本。我最初的方法是使用 python-daemon 并且它有效。进程已分离并在后台运行。然后我了解到 init.d 提供了我需要的包装器,即 daemon-start-stop。

现在我不知道该怎么办。是否值得让 python-daemon 变红或相反,或者两者都保留(在这种情况下,python-daemon 必须使用 detach=False 启动)。

如果有人对 init.d 脚本和守护进程有经验,我很想听听您的意见。

几个问题,我正在寻找答案: - 这两种解决方案之间的优缺点 - 哪个更简单但更强大的解决方案 - 您过去发现了什么问题

我知道这个问题可能有点像讨论的介绍,因为可能没有明确的答案。但是,我想在自己陷入陷阱之前先了解其他人的错误。

0 投票
1 回答
1406 浏览

python - python-daemon 2.0.5 不会用 pip 安装

尝试使用 pip 和 python 2.6 安装 python-daemon 2.0.5 时出现错误。我知道还有其他问题涉及 python-daemon 2.0.3 有这个问题。但这些答案表明它现在应该被修复。

我也尝试过安装旧版本,但没有运气。虽然如果我从一个新的 virtualenv 重新开始,我可以安装 1.5.6 。但是在这个 virtualenv 中,我在 2.0.5 和 1.5.6 中遇到了同样的错误

0 投票
0 回答
470 浏览

python - 如何通过 ssh 连接启动 python-daemon?

我想使用 python 库 paramiko 登录到远程计算机,然后使用 python-daemon 库启动一个守护进程,在程序终止后,它仍然作为某种作业队列工作。到目前为止,这是我的代码:(
在这个例子中,守护进程只会打开一个文件并在其中打印一些随机数)

'

不幸的是,这似乎不起作用,如果我从脚本中删除守护进程上下文,它似乎可以工作,但我必须等待服务器完成。我还尝试将输出重定向到/dev/null,但这没有用,感谢您的任何建议。

0 投票
1 回答
86 浏览

openstack - os-svc-daemon 没有向新贵添加新服务

我创建了一个名为 some-service 的新服务。shell 脚本存在于 /etc/init.d/some-service 我在 /usr/local/bin/some-service 中有相同的 shell 脚本文件,它是 some-service 的副本。

我运行以下命令来创建守护程序服务:

这创建了一个 /etc/init/some-service.conf

重新加载更改运行以下命令

in 试图启动该服务,但它从未运行。

我在这里做错了什么?使用 shell 脚本而不是 python bin 文件来启动它也安全吗?

0 投票
2 回答
766 浏览

python - python importlib 在守护进程上下文中找不到模块

我有一个基于配置动态导入模块的脚本。我正在尝试python-daemon在脚本上实现一个守护进程上下文(使用模块),它似乎干扰了 python 找到有问题的模块的能力。

我这样mymodule/__init__.pysetup()

我接到了setup()里面的电话mymodule/__main__.py,我正在以这种方式加载整个内容: PYTHONPATH=. python -m mymodule

这工作正常,但是在 load_modules() 中设置的侦听端口被新添加的守护进程上下文关闭,所以我想在守护进程上下文中移动该函数调用,如下所示:

模块以这种方式加载load_modules()

load_modules()守护程序上下文之外,这可以正常工作。当我将它移动到守护进程上下文中时,它似乎无法找到它正在寻找的模块。我明白了:

它看起来像是某种命名空间问题——我注意到异常只涉及我尝试导入的模块名称的子模块部分——但我已经比较了我在守护进程上下文内部和外部能想到的所有内容,并且我找不到重要的区别。 sys.path没有改变,守护进程上下文没有清除环境或 chrooting。cwd 当然会更改为/,但这不应该对 python 查找模块的能力产生任何影响,因为绝对路径.出现在sys.path.

我在这里想念什么?

编辑:我正在添加一个SSCCE以使情况更加清晰。以下三个文件创建了一个名为“mymodule”的模块,可以从命令行以PYTHONPATH=. python -m mymodule. 有两个调用load_module()in __init__.py,一个被注释掉。您可以通过交换评论中的哪一个来证明问题。

mymodule/__main__.py

mymodule/__init__.py

mymodule/foo.py

0 投票
1 回答
406 浏览

python - Python:使用守护线程一段时间后终止多线程程序

我想实现一个运行一段时间后终止的程序t,并t使用ArgumentParser. 目前我有以下代码(省略一些细节):

该程序按我的预期工作(它在运行 3 秒后终止)。但正如我之前提到的,运行时间(上面代码片段中的 3.0)应该从命令行输入(例如 args.arg3 = 3.0),而不是硬编码。显然我不能time.sleep(args.arg3)直接放。我想知道是否有任何方法可以解决我的问题?也欢迎不使用守护线程的答案!谢谢。

PS。如果我将参数解析代码放在run函数之外,例如:

该程序不会在args.arg3几秒钟后终止,我对原因感到困惑。如果有人能解释所有这些背后的魔力,我也会非常感激......非常感谢!

0 投票
2 回答
16639 浏览

python - 您如何按照文档说明的方式使用 python-daemon?

我正在尝试在 python 中创建一个守护程序,并且遇到了 python-daemon 包。关于它的有趣之处在于,我看到它使用的最常见方式甚至不是非常稀疏的文档告诉你做什么

相反,人们像这样使用它:

此处和此线程中的示例How do you create a daemon in Python?

那么谁能告诉我这个包应该如何按预期使用?有 0 个示例按照文档指定的方式使用它。

0 投票
0 回答
54 浏览

python - Python守护程序有时不会产生

我在 python 中有一个守护进程,我使用 DaemonRunner API 生成它(创建了一个 PID 文件和锁定文件)。守护进程停止时会删除 PID 文件和锁定文件。

启动/停止工作正常,但有时守护程序不启动。我需要删除包含 PID 文件的整个文件夹才能将其备份。我该如何调试?还有一个名为 HOST.MainThread-PID 的自动生成文件。这有什么意义?

这是我的类来启动/停止守护进程

strace 对于成功和不成功的用例看起来都相似。