![在 Bash 中执行后台程序,无需作业控制](https://linux22.com/image/1318066/%E5%9C%A8%20Bash%20%E4%B8%AD%E6%89%A7%E8%A1%8C%E5%90%8E%E5%8F%B0%E7%A8%8B%E5%BA%8F%EF%BC%8C%E6%97%A0%E9%9C%80%E4%BD%9C%E4%B8%9A%E6%8E%A7%E5%88%B6.png)
我经常从 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 现在已经忘记了您刚刚创建的后台作业。