Firefox не закрывается должным образом при выходе

10

Я только что установил Ubuntu 14.04 beta2и из 25 попыток выхода из системы, завершения работы или перезапуска мой сеанс не закрывался Firefoxдолжным образом 23 раза при выходе. Результатом является страница восстановления вкладок Firefox, которая никогда не появляется, если я заранее найду время закрыть Firefox вручную.

Так как он работал 2/25 раз, это похоже на проблему времени, когда Ubuntu не позволяет завершить процесс Firefox (Ubuntu выходит из системы примерно через 1-2 с). Я никогда не получал "подождать Firefox? / Все равно закрыли?" диалоговое окно, которое я наблюдал под 12.04.

Так что, если я прав, как мне сделать так, чтобы он ждал? Если нет, то в чем проблема и как мне решить проблему неправильного выхода?

У меня нет опыта работы с профилем или конфигурационными файлами сессии, и очень мало с bash (я это понимаю, но паршиво кодирую). Поэтому, если вы не можете ответить, но у вас есть хорошая статья о том, как работают профили / сеансы в Unix / Linux / Debian / Ubuntu (если таковые имеются) и / или как вносить изменения в события входа в систему / выхода из системы, я бы быть счастливым с этим.

Изменить: я сделал дополнительные тесты, которые далее указывают, что это вопрос времени

  • wmctrl -c firefox; sleep 0.5; sudo shutdown now -r прекрасно работает 100%
  • wmctrl -c firefox; sleep 0.2; sudo shutdown now -r работает нормально 50%
  • wmctrl -c firefox; sudo shutdown now -r отлично работает 10%
  • sudo shutdown now -r& wmctrl -c firefox никогда не работает ...

Итак, как обходной путь, как я могу записать wmctrl -c firefox; sleep 0.5в файл, который похож на .profileили bash_logoutдля выхода из сеанса?

sinekonata
источник
Ядро не терпеливый человек. Процесс Firefox, возможно, занял слишком много времени, чтобы прекратить после того, как (приятно) получил сигнал в первый раз; он, вероятно, получил еще один (более радикальный) сигнал и был грубо убит . Это будет в основном зависеть от работы разработчиков, а не от конкретной конфигурации вашей системы.
Джон В. У. Смит,
@JohnWHSmith Но я сказал, что для выхода требуется максимум 2 секунды. Я только что попробовал сейчас снова, и это было мгновенно (0,1 с). Вход снова приветствовал меня с смущенным Firefox. Кроме того, поскольку это ошибка, я должен сообщить об этом в Ubuntu или ядре, или что тогда, если, как вы говорите, я действительно ничего не могу сделать сам?
синеконата
1
Я считаю, что сообщение об ошибке должно идти против Firefox. Firefox 28, кажется, ведет себя не так, как раньше; иногда он продолжает работать после того, как все окна закрыты, и блокирует несколько процессорных ядер.
Добей
@dobey Если то, что вы говорите, правда, оно должно быть очень быстрым: я тестировал выключение сразу (0,1 с) после нажатия кнопки Firefox (x) и никаких ошибок там не было. Я чувствую, что то, что делает Ubuntu, близко с командой kill process. Я просто хочу повторить, что у меня не установлено дополнение, что все свежее и что это не произошло в 12.04. Все, что я хочу, - это способ вызвать действие «правильно закрыть» вместо «резко закрыть».
синеконата
То, что окно исчезло, не означает, что Firefox действительно вышел. Или это не обязательно означает, что он вышел чисто. Насколько нам известно, Firefox может аварийно завершить работу, когда вы выходите из него, и это никак не связано с процессом выхода из системы. Вы использовали ту же версию Firefox 28 в 12.04?
Добей

Ответы:

1

По-видимому, нет специального файла для записи, как раньше. Это был /etc/gdm/PostSessionпод Gnome, но недоступен, так как, видимо, Unity. И размещение сценария под /etc/rc0.d/и /etc/rc6.d/не будет работать, так как они выполняются только после завершения работы Xserver.

Тем не менее, существует событие, которое называется gnome-save-yourselffired, когда от gnome требуется выйти из системы. Я это то, что, geditнапример, будет неявно позвонить. И Симус Фелан создал скрипт на python, чтобы прослушать событие и запустить ваш скрипт, когда его поймают.

Вот ссылка на решение: Выполнение скрипта при выходе пользователя из системы (не пользователь root)

Следуйте инструкциям, и тогда все, что вам нужно сделать, это разместить скрипт, который может выглядеть следующим образом:

#! /bin/sh
#Requires wmctrl
wmctrl -c firefox;
gmusicbrowser -cmd "Quit";
exit 0;

где опция -c аккуратно закрывает Firefox, как и -cmd "Quit"для gMusicBroswer. Firefox и gMusicBrowser должны быть закрыты должным образом, чего они не делают.

, Вероятно , лучше всего было бы проверить использование SIGTERM, SIGKILLи kill timeoutв Ubuntu и программ , но я не знаю достаточно об этом не знаю.

sinekonata
источник
Об
отслеживателе ошибок