在 Bash 中执行后台程序,无需作业控制

在 Bash 中执行后台程序,无需作业控制

我经常从 shell 执行 GUI 程序,例如 Firefox 和 evince。如果我输入“firefox &”,firefox 会被视为 bash 作业,因此“fg”会将其带到前台并“挂起”shell。当我有一些后台作业(例如 vim)正在运行时,这会很烦人。

我想要的是启动 Firefox 并将其与 bash 分离。使用我的假想 runbg 考虑以下理想情况:

$ vim foo.tex
ctrl+z and vim is job 1
$ pdflatex foo
$ runbg evince foo.pdf
evince runs in background and I get me bash prompt back
$ fg
vim goes foreground

有没有办法使用现有程序来实现这一点?如果没有,我将编写自己的 runbg。

答案1

这个怎么样?

( firefox & )

这似乎将其排除在工作表之外,并且fg根本看不到它。

答案2

做这个:

bash$ firefox &
bash$ disown

Bash 现在已经忘记了您刚刚创建的后台作业。

相关内容