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

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

我使用 Ubuntu,我有一个程序( Mnemosyne ),我使用 Dropbox 同步数据文件。 这是我的问题场景。 我离开程序在家运行,但是开始工作,但是如果我在工作时打开了数据文件,我退出( 它会自动保存)。

我想我可以在每天早上自动关闭 Mnemosyne,但是如果我没有保存数据文件,我就结束了。 是否有更好的方法将退出信号发送到模拟我的程序单击文件> 退出菜单选项。


回答 1:

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


回答 2:

根据你的描述,我假设这是运行在X 服务器上的GUI程序。 尝试使用 wmctrl插件:

wmctrl -c"RegEx for Window Name"

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


回答 3:

如何在家里的屏幕会话中启动程序,以便可以在工作中重新连接并完全控制发生的事情。

http://www.howtoforge.com/linux_screen


回答 4:

在mnemosyne上有手册页? 也许文档中有一个关闭命令,你可以在你的作业中使用。


回答 5:

正确的答案取决于你的程序支持什么。 一个好的程序应该保存所有的工作,当接收到这个术语信号时,我认为这是正确的。 如果程序不容忍,并且不提供任何它的他方式,例如在控制套接字上,你可以能没有幸运。 这样,尝试使用屏幕会话或者修复程序或者使用不同的程序。


回答 6:

这种应用非常依赖。如果mnemosyne没有预见这种情况,特别是创建了"接收信号X 时保存和退出"行为,那么你就不得不使用它的用户界面来完成这个操作。

但是,如前所述,更好的解决方案可以能在某种形式的显示共享实用程序下运行 mnemosyne,而不是关闭。 这里最常见的是我所熟悉,但是现在有很多其他选项可以让你更好地工作。

如果它是一个命令行应用程序,screen 工作得很好,但是我不认为它处理GUI应用程序"或者或或者"x")。


回答 7:

一般来说,关闭程序的唯一方法是信号。 如它的他人所说,如果它没有对默认的for ( 它发送 SIGTERM ) 响应很好,那么它不可以能对它的他信号有正确的。 没有'更柔和'信号。 除非有一个信号,如果它有一个,或者杀死应用程序,它将处理这个过程。

这说明,作为gui应用程序,它有很少的机会链接到一个可以控制应用程序的库。 你可以尝试看你是否可以用dcop或者d 总线发送邮件。 请参见 http://dbus.freedesktop.org/doc/dbus-tutorial.html



exi  KILL  退出  
相关文章