Ubuntu 20.04.3 从终端运行 Firefox 时出现问题

Ubuntu 20.04.3 从终端运行 Firefox 时出现问题

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 的几点说明

  1. ATTENTION: default value of option mesa_glthread overridden by environment.仅当您没有启动任何 Firefox 窗口时才会发生错误。如果您至少有一个窗口 - 您可以使用语法

Firefox 新窗口https://sample.com/url

  1. 除了放弃和分离之外,您还可以使用另一个技巧 - 启动新的终端窗口。它将使您能够查看日志。例如,我使用简单的 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

相关内容