firefox
我是 Ubuntu 20.04.3 的新用户。我在从终端运行 Web 浏览器时遇到了问题。
当我在终端中输入“firefox”时,我收到以下消息:
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
ATTENTION: default value of option mesa_glthread overridden by environment.
Firefox 最终启动了,但如果我关闭终端窗口,它也会关闭我的 Firefox。
答案1
有几种方法可以使您的后台进程具有弹性挂断首先,你有nohup
指示信号函数SIGHUP
在用新进程 (execvp) 替换自身之前要忽略。但是,对于重新实现信号处理的应用程序来说,这是不可能的。
接下来,setsid
命令的工作方式大致相同,但不是操纵信号,设置id()用于创建新会话,这不会使您的应用程序免疫,但至少它不会再从终端接收任何信号。现在,这两个命令可以组合起来,如果 SIGHUP 得到遵守,否则 nohup 将是多余的。
最后,disown
您可以使用 将应用程序从活动作业中移除,或使用 将应用程序标记-h
为不接收从 shell 发送的 SIGHUP。现在,与 一样setsid
,这不会使您的应用程序免疫,但只要 SIGHUP 不直接发送到进程,您就应该没问题。
firefox &>/dev/null & disown
您也可以放弃正在运行的应用程序。
$ firefox
ctrl + z
^Z
[1]+ Stopped firefox
$ bg
$ disown
disown
还将 jobspec 或 pid 作为参数。
答案2
如果您希望在启动图形软件后能够关闭终端,则需要使用--detach
。
例子:
firefox --detach
答案3
关于在后台启动 Firefox 的几点说明
ATTENTION: default value of option mesa_glthread overridden by environment.
仅当您没有启动任何 Firefox 窗口时才会发生错误。如果您至少有一个窗口 - 您可以使用语法
Firefox 新窗口https://sample.com/url
- 除了放弃和分离之外,您还可以使用另一个技巧 - 启动新的终端窗口。它将使您能够查看日志。例如,我使用简单的 bash 命令启动 symfony 后端和 react 前端
gnome-terminal --title="后端" -- bash -c 'cd /home/zhil/projects/.../backend; symfony serve --no-tls'
睡眠3
gnome-terminal --title="Firefox" -- bash -c'firefox -new-window http://localhost:8000/...'
睡眠3
gnome-terminal --title="Frontent" -- bash -c 'cd /home/zhil/projects/.../frontend; npm start'
Firefox-新窗口http://本地主机:3000