10 votes

Firefox ne se ferme pas 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. Firefox correctement 23 fois en sortant. 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 manuellement Firefox au préalable.

Comme cela a fonctionné 2/25 fois, cela ressemble à un problème de temps où Ubuntu ne laisse pas le temps au processus de Firefox de se terminer (Ubuntu se déconnecte en 1-2s environ). Je n'ai même jamais reçu le "attendre Firefox ? / fermer de toute façon ?" boîte de dialogue que j'ai observée sous 12.04.

Si j'ai raison, comment faire pour qu'il attende ? Sinon, quel est le problème et comment puis-je résoudre le problème de sortie incorrecte ?

Je n'ai aucune expérience dans la gestion des fichiers de configuration de profil ou de session et très peu avec bash (je le comprends mais je suis nul pour le coder). Donc si vous ne pouvez pas répondre mais que vous avez un bon article sur le fonctionnement des profils/sessions sous Unix/Linux/Debian/Ubuntu (si c'est le même) et/ou sur la façon de modifier les événements de login/logout, j'en serais heureux.

Edit : J'ai fait des tests supplémentaires qui indiquent que c'est une question de temps.

  • wmctrl -c firefox; sleep 0.5; sudo shutdown now -r fonctionne parfaitement à 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...

Donc, comme solution de contournement, comment puis-je écrire wmctrl -c firefox; sleep 0.5 dans un fichier qui ressemble à .profile o bash_logout mais pour la fermeture de la session ?

1voto

sinekonata Points 554

Apparemment, il n'y a pas de fichier dédié pour écrire comme avant. C'était le /etc/gdm/PostSession sous Gnome mais n'est plus disponible depuis apparemment Unity. Et placer un script sous /etc/rc0.d/ y /etc/rc6.d/ ne fonctionneront pas puisqu'ils ne sont exécutés qu'après l'arrêt de Xserver.

Cependant, il existe un événement appelé gnome-save-yourself déclenché lorsqu'il a été demandé à gnome de se déconnecter. Je suis ce que gedit par exemple, fera un appel implicite. Et Seamus Phelan a créé un script en Python pour écouter l'événement et exécuter votre script lorsqu'il est attrapé.

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

Suivez les instructions et ensuite 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 doucement ferme Firefox comme le fait -cmd "Quit" pour gMusicBroswer. Firefox et gMusicBrowser doivent être fermés correctement, ce qui n'est pas le cas.

Une meilleure méthode consisterait à vérifier l'utilisation de la fonction SIGTERM , SIGKILL y kill timeout dans Ubuntu et les programmes mais je ne m'y connais pas assez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X