web-dev-qa-db-fra.com

Firefox pas fermé correctement lors de la déconnexion

Je viens d’installer Ubuntu 14.04 beta2 et sur 25 tentatives de déconnexion, d’arrêt ou de redémarrage, ma session ne s’est pas fermée correctement Firefox 23 fois lors de la fermeture. Le résultat est la page de récupération des onglets de Firefox qui ne se produit jamais si je prends le temps de fermer Firefox au préalable manuellement.

Comme cela a fonctionné 2/25 fois, cela semble être un problème de temps pour lequel Ubuntu ne permet pas au temps de traitement de Firefox de se terminer (Ubuntu se déconnecte après environ 1-2 secondes). Je n'ai même jamais reçu la "attendre Firefox?/Éteint quand même?" que j'ai observée sous 12.04.

Donc, si j'ai raison, comment puis-je faire en sorte qu'il attende? Si non, quel est le problème et comment résoudre le problème de la sortie incorrecte?

Je n'ai aucune expérience de la gestion de fichiers de configuration de profil ou de session et très peu de choses avec bash (je le comprends mais je suis moche à le coder). Donc, si vous ne pouvez pas répondre mais avez un bon article sur le fonctionnement des profils/sessions sous Unix/Linux/Debian/Ubuntu (si identique) et/ou comment modifier les événements de connexion/déconnexion, je être heureux avec ça.

Edit: j'ai fait des tests supplémentaires qui indiquent en outre que c'est une question de temps

  • wmctrl -c firefox; sleep 0.5; Sudo shutdown now -r fonctionne bien 100%
  • wmctrl -c firefox; sleep 0.2; Sudo shutdown now -r fonctionne bien 50%
  • wmctrl -c firefox; Sudo shutdown now -r fonctionne bien 10%
  • Sudo shutdown now -r& wmctrl -c firefox ne semble jamais fonctionner ...

En guise de solution de contournement, comment puis-je écrire wmctrl -c firefox; sleep 0.5 dans un fichier qui ressemble à .profile ou bash_logout mais pour la déconnexion de la session?

8
sinekonata

Apparemment, il n’ya pas de fichier dédié sur lequel écrire. C'était le /etc/gdm/PostSession sous Gnome, mais il n'est pas disponible, car apparemment, Unity. Et placer un script sous /etc/rc0.d/ et /etc/rc6.d/ ne fonctionnera pas, car ils ne sont exécutés qu'après la fermeture du serveur X.

Cependant, un événement appelé gnome-save-yourself est déclenché lorsque gnome a été invité à se déconnecter. I est ce que gedit par exemple appellera implicitement. Et Seamus Phelan a créé un script python pour écouter l'événement et exécuter votre script lorsqu'il est intercepté.

Voici le lien vers la solution: Exécution de script à la déconnexion de l'utilisateur (utilisateur non root)

Suivez les instructions et tout ce que vous avez à faire est de placer votre script qui peut ressembler à ceci:

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

où l'option -c ferme doucement ferme Firefox comme le fait -cmd "Quit" pour gMusicBroswer. Firefox et gMusicBrowser doivent être fermés correctement, ce qu'ils ne font pas.

Un meilleur moyen serait probablement de vérifier l'utilisation de SIGTERM, SIGKILL et kill timeout dans Ubuntu et ses programmes, mais je n'en sais pas assez.

1
sinekonata