关闭终端而不终止进程

关闭终端而不终止进程

我从终端启动了安装过程,对此有两个疑问:

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

答案1

对于 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"

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

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

相关内容