【问题标题】:Python: Why does my SMTP script freeze my computer?Python:为什么我的 SMTP 脚本会冻结我的计算机?
【发布时间】:2011-04-23 09:53:57
【问题描述】:

所以我写了一个小的多线程 SMTP 程序。问题是每次我运行它时,它都会在不久之后冻结计算机。该脚本似乎仍然有效,因为我的网卡仍然亮着并且收到了电子邮件,但在某些情况下它会完全锁定并停止发送电子邮件。

这是我的两个脚本文件的链接。第一个是用来启动程序的:

readFile.py newEmail.py

【问题讨论】:

  • 不要使用 pastebin 来引用代码!
  • 因为 pastebim 数据是不稳定的
  • @RestRisiko 想解释一下为什么? (对不起,如果这是一个愚蠢的问题)
  • 老兄,pastebin 上的东西会在几天后被删除...我们不想希望在 SO 上悬挂对外部资源的引用...明白了吗?

标签: python multithreading smtp freeze


【解决方案1】:

首先,您使用popen 创建子进程,即。进程不是线程。我假设这就是你的意思。

我的猜测是程序陷入了一个循环,它不断地生成进程,操作系统可能不喜欢这种循环。 (这种东西被称为forkbomb,这是冻结 Linux 的好方法,除非使用ulimit 设置了进程限制。)虽然我找不到错误,但如果我是你,我' d 每次生成或终止子进程时记录消息,如果一切正常,请密切观察系统(pstop 在 Unix 系统上)以查看进程是否真的被杀死。

【讨论】:

  • 嗯,也许我会这样做。我想我必须使用前者(写入日志文件),因为系统被锁定并且我无法运行 ps。
  • 我的想法是在它冻结之前运行它。实际上,使用ulimit 限制进程数(ulimit -u)以防止崩溃会更干净。
  • Dan:如果这个答案最终有用,你应该投票(用向上箭头),如果它回答了你的问题,你应该“接受”答案,点击下面的复选标记箭头。您和回答者都将因此获得声誉。
  • @Wilduck 我试图投票,但我还没有足够的代表。
猜你喜欢
  • 2017-05-22
  • 2020-01-03
  • 2013-10-14
  • 2019-10-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2020-01-05
相关资源
最近更新 更多