Firefox não fechado corretamente ao sair


10

Acabei de instalar Ubuntu 14.04 beta2e, em 25 tentativas de logoff, desligamento ou reinicialização, minha sessão não foi fechada Firefoxcorretamente 23 vezes ao sair. O resultado é a página de recuperação das guias do Firefox que nunca acontece se eu reservar um tempo para fechar o Firefox manualmente.

Como funcionou 2/25 vezes, parece um problema de tempo em que o Ubuntu não permite que o tempo do processo do Firefox termine (o Ubuntu efetua logout em cerca de 1-2s). Eu nunca recebi a "espera pelo Firefox? / Desligue mesmo assim?" caixa de diálogo que observei em 12.04.

Então, se eu estiver correto, como faço para esperar? Se não, qual é o problema e como resolvo a saída inadequada?

Não tenho experiência com o gerenciamento de arquivos de configuração de perfil ou sessão e muito pouco com o bash (eu entendo, mas sou péssimo em codificá-lo). Portanto, se você não puder responder, mas tiver um bom artigo sobre como os perfis / sessões funcionam no Unix / Linux / Debian / Ubuntu (se o mesmo) e / ou como fazer alterações nos eventos de login / logout, eu seja feliz com isso.

Edit: Fiz testes adicionais que indicam ainda que é uma questão de tempo

  • wmctrl -c firefox; sleep 0.5; sudo shutdown now -r funciona bem 100%
  • wmctrl -c firefox; sleep 0.2; sudo shutdown now -r funciona bem 50%
  • wmctrl -c firefox; sudo shutdown now -r funciona bem 10%
  • sudo shutdown now -r& wmctrl -c firefox nunca parece funcionar ...

Portanto, como solução alternativa, como escrever wmctrl -c firefox; sleep 0.5em um arquivo semelhante .profileou bash_logoutapenas para logout de sessão?


O núcleo não é um homem paciente. O processo do Firefox pode levar muito tempo para terminar depois de ser (muito bem) sinalizado pela primeira vez; ele provavelmente recebeu outro sinal (mais radical) e foi quase morto . Isso dependeria principalmente do trabalho dos desenvolvedores, não da configuração do seu sistema especificamente.
John WH Smith

@JohnWHSmith Mas eu disse que leva 2 segundos no máximo para sair. Eu apenas tentei agora novamente e foi instantâneo (0,1s). O login me recebeu novamente com um Firefox embaraçado. Além disso, como é um bug, eu o relato no Ubuntu ou no kernel ou o que acontece se, como você diz, eu realmente não posso fazer nada sozinho?
precisa saber é o seguinte

1
Eu acredito que o relatório de bug deve ir contra o Firefox. O Firefox 28 parece não se comportar tão bem quanto antes; às vezes, fica em execução depois que todas as janelas são fechadas e gera vários núcleos de CPU.
Dobey 17/04

@dobey Se o que você diz é verdade, deve ser extremamente rápido: testei o desligamento imediato (0,1s) depois de pressionar o botão Firefox (x) e nenhum bug lá. Eu sinto que o que o Ubuntu faz é encerrado com um comando de processo de morte. Quero apenas reafirmar que não tenho nenhum complemento instalado, que tudo está atualizado e que não aconteceu no 12.04. Tudo o que eu quero é uma maneira de chamar a ação "fechar corretamente" em vez da "fechar abruptamente".
Sinekonata

Só porque a janela foi embora, não significa que o Firefox realmente saiu. Ou isso não significa necessariamente que saiu corretamente. Pelo que sabemos, o Firefox pode estar travando quando você o sai, e não tem nada a ver com o processo de logout / in. Você estava usando a mesma versão do Firefox 28 na versão 12.04?
Dobey 17/04

Respostas:


1

Aparentemente, não há um arquivo dedicado para escrever, como costumava haver. Era o /etc/gdm/PostSessionGnome sob, mas não está disponível desde aparentemente a Unity. E colocar um script em /etc/rc0.d/e /etc/rc6.d/não funcionará, pois eles são executados somente após o desligamento do Xserver.

No entanto, há um evento chamado gnome-save-yourselfacionado quando o gnome é solicitado a sair. Eu sou o que, geditpor exemplo, chama implicitamente. E Seamus Phelan criou um script em python para ouvir o evento e executá-lo quando capturado.

Aqui está o link para a solução: Execução de script no logout do usuário (usuário não root)

Siga as instruções e, em seguida, tudo o que você precisa fazer é colocar seu script com a seguinte aparência:

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

onde a opção fecha -c suavemente o Firefox, assim como o -cmd "Quit"gMusicBroswer. O Firefox e o gMusicBrowser precisam ser fechados corretamente, o que não é necessário.

Uma maneira provavelmente melhor seria verificar o uso de SIGTERM, SIGKILLe kill timeoutno Ubuntu e nos programas, mas não sei o suficiente.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.