一个脚本需要很多时间。我想暂停它(例如按p)并将其保存到 HDD(例如按s),以便稍后从 HDD 恢复它。像 Thread 这样的库或像 Celluloid 这样的 gem 可能会暂停部分代码,但据我所知,它们无法将当前进程保存到磁盘。
理想情况下,我想在脚本的开头放几行代码或者像这样简单的东西。
一个脚本需要很多时间。我想暂停它(例如按p)并将其保存到 HDD(例如按s),以便稍后从 HDD 恢复它。像 Thread 这样的库或像 Celluloid 这样的 gem 可能会暂停部分代码,但据我所知,它们无法将当前进程保存到磁盘。
理想情况下,我想在脚本的开头放几行代码或者像这样简单的东西。
你正在解决错误的问题。如果您的脚本运行时间过长,请加速您的脚本,而不是尝试序列化操作系统进程。
如果您坚持能够冻结进程并将状态保存到磁盘,您可能需要考虑在 VirtualBox 或 VMware 等虚拟机中运行您的进程。这两种产品都支持暂停虚拟机并将虚拟机的当前状态保存到磁盘的功能。
除了某种虚拟化层之外,我不知道有任何方法可以将正在运行的操作系统进程存储在磁盘上。如果你真的需要这个功能,那是我推荐的方式。但是,通过提高代码效率(瓶颈的配置文件或基准测试)、扩展系统或以分布式方式扩展程序任务,您可能会获得更多收益。