O Firefox não fechou corretamente ao efetuar logout

6

Acabei de instalar Ubuntu 14.04 beta2 e, de 25 tentativas, efetue logoff, desligue ou reinicie, minha sessão não encerrou Firefox propriamente 23 vezes ao sair. O resultado é a página de recuperação das abas do Firefox que nunca acontece se eu reservar um tempo para fechar o Firefox manualmente.

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

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

Eu não tenho experiência em gerenciar arquivos de configuração de perfil ou sessão e muito pouco com bash (eu entendo, mas sou péssimo em codificá-lo). Então, se você não pode responder, mas tem 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.

Editar: 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 parece nunca funcionar ...

Então, como uma solução alternativa, como posso escrever wmctrl -c firefox; sleep 0.5 em um arquivo que se parece com .profile ou bash_logout , mas para o logout da sessão?

    
por sinekonata 17.04.2014 / 18:50

1 resposta

1

Aparentemente, não há arquivo dedicado para escrever como costumava ser. Foi o /etc/gdm/PostSession sob o Gnome, mas não está disponível desde aparentemente Unity. E colocar um script em /etc/rc0.d/ e /etc/rc6.d/ não funcionará, pois eles são executados somente depois que o Xserver é encerrado.

No entanto, há um evento chamado gnome-save-yourself acionado quando o gnome foi solicitado a efetuar logout. Eu é o que gedit , por exemplo, irá implicitamente chamar. E Seamus Phelan criou um script python para ouvir o evento e executar seu script 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;

em que a opção -c gentilmente fecha o Firefox, assim como -cmd "Quit" para gMusicBroswer. Tanto o Firefox quanto o gMusicBrowser precisam ser fechados corretamente, o que não acontece.

Uma maneira provavelmente melhor seria verificar o uso de SIGTERM , SIGKILL e kill timeout no Ubuntu e nos programas, mas eu não sei o suficiente sobre isso.

    
por sinekonata 20.04.2014 / 17:00