关闭终端而不终止进程

Ema*_*eed 2 command-line

我从终端开始安装过程,对此有两个问题:

  1. 如何在不终止安装过程的情况下关闭终端?我怎样才能再次恢复它?
  2. 我如何判断这个终端已经完成了另一个终端的处理,以便我可以根据第一个终端的结果进行其他处理?

Syl*_*eau 5

对于 1. 您需要将正在运行的进程发送到后台并从当前 shell 中删除关联的作业。

  • Ctrl+Z并输入bg将安装过程发送到后台
  • 然后输入disown.

在此处输入图片说明

您现在可以关闭终端,该进程仍将处于活动状态。您可以打开另一个终端并检查其进程 IDps -aef

在此处输入图片说明

在我的情况下,进程 ID 是14426. 不幸的是有没有简单的方法来将其安装到另一个终端(见如何安装终端分离的进程?),除非你基于使用的东西screen

对于 2. 您可以使用以下命令:

while kill -0 14426 >/dev/null 2>&1; do sleep 5 ; done ; echo "ok"
Run Code Online (Sandbox Code Playgroud)

ok当进程从另一个终端结束时,它将打印。你当然可以echo用更复杂的东西来改变这个命令。

来源:BASH:启动后台进程并检查它何时结束