例如,我可以通过输入以下命令在后台运行 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 将保持打开状态。