(16.04)如何从终端“分离”程序?

(16.04)如何从终端“分离”程序?

我不确定这种情况是如何或为什么发生的,但有时当我通过终端打开程序时,终端会继续附加到程序上。我可以理解“sudo nautilus”之类的情况,但对于常规程序来说,这非常烦人。

我无法将终端与程序分离,因为如果我按 ctrl+c,它会关闭该程序,如果我退出终端,那么该程序也会关闭。

几个问题:

  • 为什么会发生这种情况?
  • 如何手动激活/停用此功能?
  • 如何将终端与程序分离?

如果我问得太多,我也能理解。在这种情况下,我甚至不知道如何通过谷歌找到答案,所以如果你能告诉我任何讨论这个问题的资源,或者告诉我正在发生的函数的名称,那就太好了。

谢谢。

答案1

在开始该程序时,您最好提前做好准备。

启动时,您可以使用多种选项。您可以使用禁止选项,而如果您将其发送到后台并关闭终端,它将继续运行。

这是屏幕选项。Screen 是一个应用程序。默认情况下未安装。您可以使用以下命令安装它:

$ sudo apt install screen

screen然后您可以通过在终端运行来启动屏幕会话。

$ screen

而在屏幕您可以通过按键盘快捷键调出帮助屏幕:Ctl+A然后按?Ctl+A使屏幕进入监听模式,以便 a 命令可以跟随键。

在屏幕终端中启动的应用程序将在关闭终端时继续运行。您可以在不同的登录名上连接到屏幕终端……甚至可以从不同的计算机连接到屏幕终端并继续使用该应用程序。

Screen 具有您在问题中描述的功能detatchreconnect

笔记:

要分离终端运行屏幕,只需关闭它即可。要将终端连接到先前分离的屏幕,请执行以下步骤:

  • 找到您要附加的屏幕:
$ 屏幕列表
  • 使用其中一个附加选项附加到列表中的一个:
$ screen -D -r [所需的分离屏幕]

答案2

简单来说,当你从终端运行脚本或应用程序时,通常需要获取一些有关其正在执行的操作的信息。在此过程中,你无法运行任何其他命令。这是前台进程。但是,在某些情况下,你只想运行应用程序,而它在后台运行,这称为后台进程。

要启动应用程序并将其发送到后台,只需在命令末尾添加 &。

但是如果你的应用程序已经在运行,你可以使用Ctrl+将其发送到后台Z。在这种情况下,你可以使用fg命令将进程返回到前台。

相关内容