Рейтинг:2

Ubuntu 20.04.3 Проблемы с запуском Firefox из терминала

флаг ru

Я новый пользователь Ubuntu 20.04.3. столкнулся с проблемой запуска Fire Fox веб-браузер с терминала.

Когда я набираю «firefox» в терминале, я получаю сообщение:

ВНИМАНИЕ: значение параметра mesa_glthread по умолчанию переопределяется средой.

ВНИМАНИЕ: значение параметра mesa_glthread по умолчанию переопределяется средой.

ВНИМАНИЕ: значение параметра mesa_glthread по умолчанию переопределяется средой.

ВНИМАНИЕ: значение параметра mesa_glthread по умолчанию переопределяется средой.

Firefox в конечном итоге запускается, но если я закрываю окно терминала, он также выключает мой Firefox.

флаг us
Пожалуйста, отредактируйте вопрос, чтобы добавить выходные данные терминала в виде кода вместо публикации снимков экрана.
Рейтинг:3
флаг cn

Есть несколько способов сделать ваш фоновый процесс устойчивым к повесить трубку во-первых, у вас есть нет который инструктирует сигнал функция для игнорирования ПОДПИСАТЬСЯ прежде чем заменить себя новым процессом (execvp). Однако для приложений, которые повторно реализуют обработку сигналов, это невозможно.

Далее, setid команда работает почти так же, но вместо управления сигналом setID() используется для создания нового сеанса, это не сделает ваше приложение невосприимчивым, но, по крайней мере, оно больше не будет получать сигнал от терминала. Теперь эти две команды можно комбинировать, например, если SIGHUP соблюдается, иначе nohup будет избыточным.

Наконец, с отречься вы можете либо удалить свое приложение из активных заданий, либо пометить приложение, используя -час чтобы не получать SIGHUP, отправленный из оболочки. Теперь, как с setid, это не сделает ваше приложение невосприимчивым, но пока SIGHUP не отправляется напрямую в процесс, все должно быть в порядке.

firefox &>/dev/null и отречься

Вы также можете отказаться от работающего приложения.

$ фаерфокс
Ctrl + Z
^ Z
[1]+ Firefox остановлен
$ бг
$ отречься

отречься также принимает в качестве аргумента jobspec или pid.

sudodus avatar
флаг jp
+1, спасибо, это очень полезный ответ :-)
Рейтинг:2
флаг us

Если вы хотите иметь возможность закрыть терминал после запуска графического программного обеспечения, вам необходимо использовать --отсоединить.

Пример:

фаерфокс --отсоединить
N0rbert avatar
флаг zw
Я не вижу `--detach` на [справочной странице firefox](http://manpages.ubuntu.com/manpages/focal/en/man1/firefox.1.html). Вы имеете в виду «Ctrl» + «Z», а затем «bg»?
sudodus avatar
флаг jp
Знаете ли вы разницу между использованием `firefox --detach &` и `nohup firefox &` (кроме того, что nohup сохраняет вывод терминала в `nohup.out`)?
sudodus avatar
флаг jp
@N0rbert, ты прав, но это все равно работает.
ChanganAuto avatar
флаг us
@N0rbert Это тот же параметр, который используется в браузере TOR Bundle на основе Firefox ESR, поэтому он работает и достаточно прост для использования OP.
флаг ru
@ChanganAuto после использования firefox --detach при попытке закрыть терминал по-прежнему закрывает веб-браузер
ChanganAuto avatar
флаг us
@kowczarek Проще говоря, это невозможно. Либо вы набрали что-то не так, либо, возможно, вы пытаетесь запустить его как root, чего вам никогда не следует делать.
sudodus avatar
флаг jp
@kowczarek, у меня работает `--detach`, но между нашими системами должно быть что-то другое. В любом случае, попробуйте `nohup firefox &` и сообщите нам, как это работает, когда вы закроете окно терминала. - Кстати, как вы закрываете свой терминал?
флаг ru
@sudodus Я попробовал «nohup firefox &», он запускает firefox, и я могу закрыть терминал, но когда я это делаю, мне нравится убить мою сессию firefox, и я получаю это сообщение: «Гах. Ваша вкладка только что разбилась. Мы можем помочь! Выберите «Восстановить эту вкладку», чтобы перезагрузить страницу». И на ваш вопрос «как закрыть терминал» я просто нажимаю X в правом верхнем углу, это плохой способ сделать это? :(
bac0n avatar
флаг cn
обычно, когда вы действительно хотите отсоединить процесс, я думаю, что setsid работает лучше всего.
sudodus avatar
флаг jp
@kowczarek, это странно. Я тестировал на своем основном компьютере с 18.04.x ​​LTS, где он работает. Теперь я протестировал тестовую систему с обновленной стандартной Ubuntu 20.04.3 и получил то же, что и вы. ***должно*** быть в порядке, чтобы закрыть окно терминала с помощью кнопки x :-( Но когда я закрыл терминал, набрав «exit» (из bash в окне терминала), firefox выжил без жалоб :-)
sudodus avatar
флаг jp
См. [эту ссылку] (https://paste.ubuntu.com/p/G4wNMBRYMY/) на pastebin Ubuntu с выводом на вкладку Firefox и на `nohup.out` при выходе из `gnome-terminal' в Ubuntu 20.04.3 ЛЦ.
sudodus avatar
флаг jp
Вы правы, @bac0n, `setsid firefox&` работает. Firefox выживает при выходе из «гном-терминала» в Ubuntu 20.04.3 LTS (также при нажатии кнопки x). Можете ли вы объяснить разницу? Я предлагаю вам написать ответ (и я обещаю проголосовать за него).
bac0n avatar
флаг cn
возможно, работает `setsid -f firefox`.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.