在 Linux 中:如何退出程序但不终止它?

在 Linux 中:如何退出程序但不终止它?

我使用 Ubuntu 10.10,并且有一个 Python 程序(记忆女神)我使用同步数据文件Dropbox。这是我的问题场景。我把程序放在家里运行,然后去上班,但如果我在工作时打开程序并对其进行操作,数据文件就会发生变化,当我退出时(它会自动保存),我在家里的进度就会丢失。

我以为我可以创建一个 cron 作业,无论我是否记得关闭 Mnemosyne,每天早上都会自动关闭它,但如果我使用 kill 程序,它会退出而不保存数据文件,当我重新启动它时,我最终会得到一个 tmp 文件和一条错误消息。有没有更好的方法将退出信号发送到此程序,模拟我单击文件 > 退出菜单选项。

答案1

尝试使用较低的杀死信号到程序例如 3 (SIGQUIT)。

答案2

根据您的描述,我假设这是一个在 X 服务器上运行的 GUI 程序。尝试控制端

wmctrl -c "RegEx for Window Name"

从手册页中: -c <WIN> Close the window <WIN> gracefully.

答案3

如何在家中的屏幕会话中启动该程序,以便您可以在工作时重新连接到它并完全控制正在发生的事情?

http://www.howtoforge.com/linux_screen

答案4

正确答案取决于您的程序支持什么。一个运行良好的程序应该在收到 TERM 信号时保存所有工作并正常终止,这是 kill 中的默认信号,所以我假设这就是您要尝试的信号。如果程序不容忍这种情况并且不提供任何其他方式(例如通过控制套接字),您可能运气不佳。在这种情况下,请尝试使用屏幕会话或修复程序或使用其他程序。

相关内容