3

我在我的 macbook air 上运行 python 脚本来处理来自外部 API 的数据,通常需要几个小时甚至几天。

但是,有时我需要在运行脚本的过程中暂停我的笔记本电脑,以便我可以去上班或回家或类似的事情。

我怎样才能在它们的for循环中间简单地暂停/恢复这些脚本?

我可以在脚本级别添加一些非常简单的东西来监听特定的击键以停止/开始吗?或者我可以在 *nix 进程管理级别做些什么?

我很清楚,Pickle但我宁愿不处理序列化/反序列化我的数据的麻烦——因为我所做的只是让 mac 休眠,我希望如果脚本被暂停然后我休眠,那OS X 将处理将 RAM 保存到磁盘,然后在我重新打开计算机时恢复到 RAM。那时,我可以按一个简单的按键来继续 python 脚本。

由于我在不同的 wifi 网络之间切换,当我的脚本尝试访问互联网以访问第 3 方 API 时,不确定不同的 IP 是否会导致问题。

4

1 回答 1

11

这最初是一条评论,但它似乎是 OP 想要的,所以我将其重新发布为答案

我会使用ctrl+z来暂停您正在运行的实时进程。这将为您留下一个 PID,您可以稍后通过调用fg:来恢复它fg <job-number>
这不应该对更改的网络设置(如 IP 等)有任何影响,至少就 python 而言。不过,我无法确定 API 是否会崩溃

于 2013-10-26T01:41:57.673 回答