Я только что установил 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
для выхода из сеанса?
Ответы:
По-видимому, нет специального файла для записи, как раньше. Это был
/etc/gdm/PostSession
под Gnome, но недоступен, так как, видимо, Unity. И размещение сценария под/etc/rc0.d/
и/etc/rc6.d/
не будет работать, так как они выполняются только после завершения работы Xserver.Тем не менее, существует событие, которое называется
gnome-save-yourself
fired, когда от gnome требуется выйти из системы. Я это то, что,gedit
например, будет неявно позвонить. И Симус Фелан создал скрипт на python, чтобы прослушать событие и запустить ваш скрипт, когда его поймают.Вот ссылка на решение: Выполнение скрипта при выходе пользователя из системы (не пользователь root)
Следуйте инструкциям, и тогда все, что вам нужно сделать, это разместить скрипт, который может выглядеть следующим образом:
где опция
-c
аккуратно закрывает Firefox, как и-cmd "Quit"
для gMusicBroswer. Firefox и gMusicBrowser должны быть закрыты должным образом, чего они не делают., Вероятно , лучше всего было бы проверить использование
SIGTERM
,SIGKILL
иkill timeout
в Ubuntu и программ , но я не знаю достаточно об этом не знаю.источник