如何从 Linux 终端运行程序而不阻塞终端?

如何从 Linux 终端运行程序而不阻塞终端?

当我从终端启动程序时,我不能再次使用该终端实例,除非我关闭该程序。

有没有办法从终端执行程序/应用程序而不阻塞终端直到程序结束?

答案1

您正在寻找作业控制大多数 shell 都支持该命令。请参阅本文介绍。有时你可能还想阅读官方文档对于 bash,这是 Ubuntu 中的默认 shell。

简而言之:要在后台自动启动作业,请&在程序调用后添加

$ program &

您还可以使用以下方式停止程序CTRLz,然后稍后使用以下方式将其置于后台:bg

$ program
^Z
$ bg

要让它们再次在前台运行,请使用fg

答案2

在 Ubuntu 16.10 中,我无法让另一个答案中提到的 ctrl + Z 起作用,但是

program &
^C

换句话说,ctrl + c在您以尾随 & 符号启动程序后,该程序对我来说是有效的。

答案3

如果作业控制不是你想要的,请查看屏幕

Screen 控制多个虚拟终端,这样您就可以运行多个程序而无需它们相互交互。例如,您可以同时运行 mocp(音乐播放器)、aptitude(软件包管理器)和 vim(文本编辑器),尽管它们都是交互式程序,将终端视为它们拥有唯一访问权限。

这使得从一项任务切换到另一项任务变得容易,例如在屏幕内创建一个新的终端来阅读手册页 - 而不会丢失您在其他地方的位置 - 来回翻转等。

答案4

在 Ubuntu 19 中,我也无法使另一个答案中提到的 ctrl + Z 起作用,但是这个有效:

$ <YOUR-PROGRAM> &
^c

相关内容