【发布时间】:2013-10-26 00:50:49
【问题描述】:
我在我的 macbook air 上运行 python 脚本来处理来自外部 API 的数据,通常需要几个小时甚至几天。
但是,有时我需要在运行脚本的过程中暂停我的笔记本电脑,以便我可以去上班或回家或类似的事情。
如何在它们的for 循环中间简单地暂停/恢复这些脚本?
我可以在脚本级别添加一些非常简单的东西,只监听特定的击键以停止/开始吗?或者我可以在 *nix 进程管理级别做些什么?
我很清楚Pickle,但我宁愿不处理序列化/反序列化数据的麻烦——因为我所做的只是让 mac 休眠,我希望脚本是否暂停然后我休眠,OS X 将处理将 RAM 保存到磁盘,然后在我重新打开计算机时恢复到 RAM。到那时,我可以按一个简单的键来继续 python 脚本。
由于我在不同的 wifi 网络之间切换,当我的脚本尝试访问互联网以访问第 3 方 API 时,不确定不同的 IP 是否会导致问题。
【问题讨论】:
-
CTRL+z 将暂停进程,直到您决定使用
fg再次恢复它。您也可以简单地合上盖子(让您的 macbook 休眠),这将为您暂停该过程(但这有点冒险,取决于您使用的 API) -
CTRL+z 和
fg听起来像我一直在寻找的东西——即使我的计算机获得了新的 IP 地址,它们还能工作吗?不确定 Python 是否会重新启动网络连接...外部 API 不是问题——每次调用最多只需要 2-3 秒就可以返回响应并最终关闭连接。 -
IP 问题不应导致 PYTHON 出现任何问题。 API 可能会对 IP 更改产生问题,但您说这不应该发生。所以看起来这就是你想要的。我将添加此作为答案,因为它似乎是您正在寻找的内容
标签: macos python-2.7 resume