我昨天升级了MacPorts的应用程序,显然大约需要4个小时。 在终端的一个标签中看到安装过程是令人恼火的。
问题:在终端中隐藏正在运行的进程,以免在我的工作区域占用空间
我今天发现Bash 4中有一个新命令coproc:
coprocess以异步方式执行 在子shell中,就像命令一样 在执行的shell和协同进程之间建立
我不确定您是否可以使用它来解决问题。我没有设法使用它。
如何隐藏正在运行的进程,使其在终端中不可见,但会继续运行?
答案 0 :(得分:4)
您是否考虑Ctrl + Z
暂停流程,然后bg
在后台运行此流程?
要从终端分离您的流程,您可以输入disown
。您现在可以关闭终端,甚至是会话。
这里的问题是输出无论如何都会出现在bash中。
您也可以在screen中启动您的计划。此命令提供了一种简单的方法来启动程序,关闭控制台并在以后检索它。
答案 1 :(得分:2)
我怀疑你正在寻找nohup
nohup LongRunningNoisyProgram &
将运行该程序,将输出记录到文件中,因此您没有看到它,将程序推入后台,如果稍后在终端运行时退出终端,则不会取消该程序。
答案 2 :(得分:0)
其他回复者至少有一件事没有涉及:如何管理隐藏进程。
假设您使用“nohup find /&”创建了100个后台进程。您想要退出它们以真正了解后台进程的工作方式。请使用命令:
ps -ej | awk '! /grep/ && /find/ {print $2}' | xargs kill -9
然后,您可能想知道如何控制键来隐藏进程。您可以将其更改为p,其中susp代表CTRL + z(^ Z):
stty susp p
你可以在这里看到钥匙:
stty -a
请比较更改前后的标准。该命令特别有用,因为它有助于记住其他命令,例如^ W(删除单词)。
杰罗姆对屏幕提出了很好的建议。我强烈建议继续这个方向:
http://www.commandlinefu.com/commands/matching/screen/c2NyZWVu/sort-by-votes