有没有办法将各个桌面应用程序挂起到磁盘? (主要是Linux)


5

请注意,此问题与“我如何暂停计算机?”不同,但与之相关。它与流行的Linux桌面平台中的“会话管理”功能的问题不同,但有关。

这是场景:我花了10分钟让我的编程环境按照我想要的方式设置。我写了一堆代码。我去睡觉。第二天早上,除了编写代码之外,我还要做一些事情。也许它是一个演示文稿。我的编码工具正在占用大量的系统资源,但我不想终止它们,因为它们很难再次设置。有没有办法把一个应用程序或一组应用程序挂起到一个“实时会话”中,然后我可以“解冻”?

请注意,这是一个普遍的问题;用前一段中的“运行巨型模拟”(或其他)替换“编程环境”。似乎这种事情应该存在,但也许我只是不知道它叫什么。那个,或者有一些非常好的技术原因导致它不存在。我也有兴趣听听。

受访者应主要关注Linux桌面平台。虽然,例如,如果这种能力存在于Windows而不是Linux上,因为它们之间存在根本差异,我很想知道它。

谢谢!

PS - 对于问题描述中的命名空间冲突感到抱歉。是否有比“暂停”和“会话”更好的条款?


2
虽然不是您所问的问题的答案,但是如果您的编程环境可以更好地自定义以从您喜欢的形式开始,可以通过配置文件甚至修改源代码来进行研究。您也可以使用xtest对窗口操作事件进行某种“重放”...

@Chris:请将其作为答案发布。我想投票。此外,您可能需要指出窗口管理器通常具有记住窗口位置和工作空间的设置 - 不需要xtest。 (执行此操作的确切方法因窗口管理器而异。)
Ken Bloom

1
正如@Chris指出的那样,这个问题与我的编程环境无关。我可以轻松地运行大规模模拟,我也会定期进行模拟。问题是一样的:如何将物品放在冰上并释放系统资源而不终止它?
BrianTheLion

Answers:



2

也许你建立了完美的开发环境 VirtualBox的 。这样您就可以可靠地冻结当前状态。您处于相同的网络环境中,可以访问同一台计算机上的共享文件夹。

唯一的其他中途解决方案就像preload-package / daemon。但某种虚拟化似乎是更好的方法。


2

我不知道暂停申请的方法 到磁盘 就像休眠一样(虽然可能是这样),但是如果你有一个交换文件发送你的应用程序了 SIGSTOP 信号可能会做你需要的。


1
当然,SIGSTOP不容忽视,但我发现使用它有两个潜在的问题:1)是否保证内核将释放进程正在使用的内存?我对此表示怀疑。 2)是否保证内核也会停止所有子进程?我也对此表示怀疑。这些保证必须在逐个app的基础上实现为处理程序,因此它不是一般解决方案。
BrianTheLion

0

是否无法设置脚本以在启动时为您配置工具,而不是每次都花费10分钟这样做?

如果做不到这一点,你可以尝试使用“kill -STOP”和“kill -CONT”,它们应该分别停止并继续进程。 看这里


请参阅我对@fuzzyTew的回复。
BrianTheLion

0

您可以使用 DMTCP 快照/恢复一组X服务器(例如,Xvfb)和您的应用程序。

但它不是“节省资源/加快加载”工作的正确工具。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.