一尘不染

如何使Python脚本像Linux中的服务或守护程序一样运行

linux

我已经编写了一个Python脚本,该脚本检查特定的电子邮件地址并将新的电子邮件传递给外部程序。如何获得此脚本以执行24/7,例如在Linux中将其转换为守护程序或服务。我是否还需要一个永无休止的循环,还是仅需多次重新执行代码就可以完成?


阅读 300

收藏
2020-06-02

共1个答案

一尘不染

您在这里有两个选择。

  1. 进行适当的 cron作业 来调用您的脚本。Cron是GNU / Linux守护程序的通用名称,该守护程序会根据您设置的时间表定期启动脚本。您可以将脚本添加到crontab中,或将其符号链接放置到特殊目录中,然后守护程序将在后台启动该脚本。您可以在Wikipedia上阅读更多内容。有各种不同的cron守护程序,但是您的GNU / Linux系统应该已经安装了它。

  2. 对脚本使用某种 python方法 (例如,一个库),使其能够守护自己。是的,这将需要一个简单的事件循环(您的事件可能是计时器触发的,可能是由睡眠功能提供的)。

我不建议您选择2.,因为实际上您将重复cron功能。Linux系统范例是让多个简单的工具交互并解决您的问题。除非有其他原因(除了定期触发)之外,您还应创建守护程序,否则请选择其他方法。

另外,如果您使用带有循环的守护进程而发生崩溃,则此后没有人会检查邮件(如IvanNevostruev在对此答案的评论中指出的)。如果脚本是作为cron作业添加的,它将再次触发。

2020-06-02