如何打开 GUI 应用程序并“断开”它?

如何打开 GUI 应用程序并“断开”它?

例如,我可以通过输入以下命令在后台运行 Sublime

sublime-text &

&会将其置于后台,以便我可以继续在终端中运行命令。或者,我可以运行

sublime-text

这会锁定我的终端。如果我按下Ctrl+,Z它会“暂停”应用程序,这实际上会冻结它(它最终会变成灰色)。输入bg会将其移至后台并解锁终端。

无论如何,如果我退出终端或输入fg然后Ctrl+ C,应用程序将关闭。

如何“断开”GUI 应用程序与终端的连接,以便不是关闭 我应该关闭终端还是按Ctrl+ C?换句话说,我想使用终端作为启动器,当我想打开特定文件时特别方便:例如sublime-text /path/to/my/file <super-secret-character-that-disconnects-the-app-not-just-puts-it-in-the-bg>

答案1

您可以使用disown命令从终端分离后台进程。

如果你只有一个正在运行的后台作业,你可以简单地使用

disown

并且这个后台进程的所有者将不再是终端,因此即使终端关闭后它仍会继续运行。

答案2

在 bash 下,使用 disown 命令修复现有进程。要获取附加到当前 shell 的后台进程列表,请使用该jobs命令。然后要放弃所需进程,请使用disown % <job number>。以下是如何放弃 xload 的示例。

jobs
[1]+  Stopped                 man man
[2]-  Running                 xload &
[3]-  Running                 xeyes &

disown %2

为了从一开始就防止出现问题,请使用 nohup 命令。因此,我会将以下行添加到您的 .bashrc 文件中:

alias sublime-text='nohup sublime-text'  

然后输入sublime-text < filename> &

答案3

nohup gedit &。现在您只需按 Enter 即可继续输入命令和内容,如果您关闭终端,gedit 将保持打开状态。

相关内容