2013-02-11 49 views
0

我经常这样做:如何从正在运行的进程中分叉?

$ gitk & 

启动程序(在这种情况下象gitk,但无论哪`吨),并返回到shell提示符继续在同一个shell工作。在你写完之后你会如何处理它

$ gitk 

没有&?是否有像^z这样的组合键,将进程置于后台但不中断它?

回答

4

如果您已经启动了没有&的进程,它将在前台运行。按Ctrl+Z将停止该过程,然后输入命令bg以在后台恢复过程执行。

1

每次调用外部程序时,如lsgitk或其他,请执行fork。在Bash中运行&的程序不仅仅是一个分支。它创建一个在后台运行的新进程组。

Ctrl + z通常具有在后台将作业置于停止状态的效果(使用信号),请使用bg重新启动。我说“通常”,因为它可以改变,使用stty。要列出您的终端设置(并查看其他魔术Ctrl键),请尝试stty -a

后台作业的一个特点是,他们通常不能访问键盘,但可以访问屏幕。这可能与其他输出混合,因此您可以使用stty tostop来防止它。这项工作必须带到前台才能使用屏幕,或使用stty -tostop。工作使用fg带到前台。

请注意,您可以有许多后台作业,请通过键入jobs来查看它们。某些命令(包括fg,bgkill)采用可选的作业编号(前缀为%)。

+0

感觉有点无结构,但很多有价值的信息,thx! – erikbwork 2013-02-11 14:28:32

+0

@ erikb85:非结构化?哪一部分?我认为它是非常有条理的,但也许这是因为它在25年以来一直保持不变。 – cdarke 2013-02-11 17:03:27

+0

我的意思是你的文本看起来有点非结构化,因为它包含了很多信息。更像是面对面交谈的引用,然后是网站上的描述性答案。但在阅读了两遍之后,我明白了,现在就可以使用它。 – erikbwork 2013-02-13 12:19:23

相关问题