我已经创建了一个Python包并在PyPI上发布了它,比如说< code>spamandeggs。这个软件包是跨平台的(Windows、GNU/Linux、MacOSX ),目的是定期(比如每5分钟)向用户更新某些信息。可以从命令行通过命令< code>spamtheeggs运行该包。
以下是我面临的问题:
问题01:如何对通过< code>spamtheeggs命令运行的脚本进行daemonize?
问题:根据这个答案,我尝试在脚本中使用schedule
。这对于调度来说很好,但执行不是后台化的。终端在整个过程中都很忙
我想知道一种方法来守护Python包。
问题02:如何将命令添加为定时执行的cron作业?
解决方案01:一种方法是编写描述该过程的安装指南(使用crontab-e
等编辑crontab)。缺点:没有吸引力。
解决方案02:作为包的作者,我希望能够将此命令添加到用户的crontab中(显然是在得到用户确认后)。
选项:
我想知道哪个选项是合适的(如果有的话),以及如何着手解决这些问题的建议。
到目前为止,我阅读的资源列表:
注意:如果该解决方案适用于所有3个平台,我将不胜感激。< br> P.S:这是我第一次尝试cron和守护进程作业。
python-deamon
包可以帮助你,它在2种模式下工作:
>
使用跑步者(我认为正是你想要的):http://www.gavinj.net/2012/06/building-python-daemon-process.html
或者直接使用daemon.DaemonContext
运行(一种更传统的方式)
python-deamon
没有文档,但我找到了一些代码,可以帮助你 http://www.programcreek.com/python/example/10392/daemon.DaemonContext
问题内容: 我试过了 返回: 并尝试: 当我回车期望过程继续运行时,我收到: 如何将sbt作为守护程序运行? 更新: 我认为cd上一个目录: 因此,它作为守护程序启动,但是如果我执行任何操作(如更改dir),它将终止该进程?如何保持进程运行? 问题答案: 看起来像从您的终端请求的输入。如果它确实不需要输入(可能是在后台运行程序),则可以这样运行: 编辑 好的,这是一个难题。简短答案:运行如下: 理
问题内容: 我有一个脚本,该脚本每隔X次运行一次我的PHP脚本: 如何将其作为守护程序启动? 问题答案: 要将其作为完整的守护程序从Shell运行,您需要使用并重定向其输出。您可以将输出重定向到日志文件,也可以将其丢弃。假设您的脚本名为myscript.sh,请使用以下命令: 这会将进程与当前的shell(stdin,stdout和stderr)完全分开。如果要将输出保留在日志文件中,请用/ pa
问题内容: 我需要将php脚本作为守护进程运行(等待说明并执行操作)。cron工作不会为我做这件事,因为需要在指令到达后立即采取措施。我知道由于内存管理问题,PHP并不是守护进程的最佳选择,但是由于种种原因,在这种情况下我必须使用PHP。我遇到了libslack的一个名为Daemon的工具(http://libslack.org/daemon),它似乎可以帮助我管理守护进程,但是最近5年没有任何更
问题内容: 在Ubuntu中将Go程序作为守护程序启动的正确方法是什么?然后,我将使用Monit对其进行监视。我应该做这样的事情吗: 我应该考虑Go特定的事情吗? 问题答案: 您应该为您的程序()构建可执行文件,然后为upstart编写脚本,它将为您的守护程序运行程序,或者使用诸如daemonize之类的外部工具。我更喜欢后一种解决方案,因为它不依赖于系统相关的新贵。通过守护进程,您可以像 这将为
问题内容: 使Perl脚本作为守护程序在Linux中运行的简单方法是什么? 目前,这是在CentOS上。我希望它从系统启动,然后从系统关闭,因此一些集成也不错,但是我总是可以向添加一个自定义行。 问题答案: 最简单的方法是使用Proc :: Daemon。 或者,您可以执行Proc :: Daemon的所有操作: 分叉一个孩子并退出父进程。 成为会话负责人(将程序与控制终端分离)。 分叉另一个子进