我需要编写一个守护程序,它会在后台不断运行并执行一些简单任务。逻辑非常简单,但必须稳定运行,并持续较长时间。
我认为使用C++编写这种应用程序是个不错的选择,但我也在考虑Python,因为在Python中更容易快速编写和测试代码。
我对Python的问题在于,我不确定它的运行环境在较长时间内的表现如何。它是否会因为某些GC怪癖而占用越来越多的内存?它是否会意外崩溃?我以前从未用Python编写过守护进程,如果您有经验,请分享一下。谢谢!
我需要编写一个守护程序,它会在后台不断运行并执行一些简单任务。逻辑非常简单,但必须稳定运行,并持续较长时间。
我认为使用C++编写这种应用程序是个不错的选择,但我也在考虑Python,因为在Python中更容易快速编写和测试代码。
我对Python的问题在于,我不确定它的运行环境在较长时间内的表现如何。它是否会因为某些GC怪癖而占用越来越多的内存?它是否会意外崩溃?我以前从未用Python编写过守护进程,如果您有经验,请分享一下。谢谢!
我曾经为上一家公司使用Python编写过许多守护进程。简单来说,它能够正常工作。只要代码本身没有内存泄漏问题,我从未见过渐进式退化或内存占用过高的情况。请注意全局或类作用域中的任何内容,因为它们会一直存在,所以使用del
比通常更加自由地使用它。其他方面,就像我说的那样,我个人没有遇到过任何问题。
如果你想知道,它们可以在 routine 重新启动之间运行数月 (通常是6个月) 而没有任何问题。
我用C/C++和Perl写了很多东西,它们在LINUX操作系统启动时启动,使用rc.d进行启动。
此外,我还编写了一些Java和Python脚本,以与上述相同的方式启动它们,但我需要一个小的shell脚本(.sh文件)来启动它们,我使用了rc.5。
让我告诉你,你对它们的运行环境的担忧是完全合理的,你必须小心选择运行级别... (只能从rc.2到rc.5,因为rc.1和rc.6是为系统保留的)。
如果运行级别太低,Python运行时可能在您启动程序时还没有准备好,这可能会导致失败。例如:在LAMP服务器中,MySQL和Apache在rc.3中启动,此时网络已经可用。
我认为你最好的选择是用Python编写脚本,并使用.sh文件从rc.5启动它。
祝你好运!