La fenêtre okular n'apparaît pas si wvdial est en cours d'exécution

3

J'utilise actuellement Debian Testing (Stretch) avec le noyau 4.6.0-1-amd64 et Cinnamon Desktop 3.2. Mon lecteur PDF préféré est Okular, qui est une application KDE / Qt.

Okular fonctionne bien sauf quand wvdial est en cours d'exécution, auquel cas le processus s'exécutera au démarrage, mais la fenêtre ne s'affichera nulle part, peu importe la méthode utilisée pour le démarrer (à partir du lanceur ALT-F2, du menu Cinnamon ou du terminal). Le processus sera répertorié par les gestionnaires de tâches (HTOP, pset autres), mais la fenêtre n’apparaîtra tout simplement pas. Statistiquement, cela se produit 100% du temps.

Étapes à suivre pour reproduire:

  • Courir wvdial en tant que root pour se connecter à Internet via un modem cellulaire USB.
  • Une fois la connexion établie, exécutez Okular.
  • Peu importe combien de fois vous l'appelez, les fenêtres n'apparaîtront jamais.
  • Mettre fin wvdial en utilisant CTRL-C.
  • Exécutez à nouveau Okular. La fenêtre apparaîtra.

Est-ce que quelqu'un sait ce qui se passe ici?

P.S: J'ai besoin d'utiliser wvdial au lieu de Network Manager, choisissez facilement entre les réseaux 3G et 4G avec un simple fichier de configuration et un script wrapper. Mon fournisseur applique différents plafonds de données pour les réseaux 3G et 4G, indépendamment l'un de l'autre. Je dois donc pouvoir utiliser l'un ou l'autre réseau à la demande, en fonction de mes besoins. J'utilise généralement le réseau 3G pour la navigation sur le Web et la 4G pour les téléchargements volumineux, les vidéoconférences et la mise à jour / mise à niveau des systèmes d'exploitation.

Modifier: Ce sont les 3 dernières lignes de strace okular avec wvdial fonctionnement:

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = 15
bind(15, {sa_family=AF_INET, sin_port=htons(0), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
connect(15, {sa_family=AF_INET, sin_port=htons(111), sin_addr=inet_addr("127.0.0.1")}, 16
Larssend
la source
C'est très curieux. Peux tu utiliser strace exécuter Okular pour voir sur quel appel il s'arrête? Peut-être que cela donne une idée de ce qui se passe.
dirkt
@dirkt, j'ai ajouté les trois dernières lignes de strace sur okular avec wvdial courir en arrière-plan.
Larssend
Ok, Okular veut donc se connecter au service portmapper (port 111) sur localhost. Est rpcbind en cours d'exécution quand wvdial est actif? Quelque chose d'étrange en état de localhost ou des itinéraires vers localhost quand wvdial est actif?
dirkt
@dirkt, j'ai essayé avec et sans l'exécution de rpcbind; La fenêtre Okular ne se présenterait dans aucun cas. Ma table de routage est très standard: une entrée pour mon réseau Ethernet, une entrée pour mon réseau sans fil et une route par défaut via ppp0 quand wvdial est en cours d'exécution.
Larssend
@dirkt, merci beaucoup de m'avoir orienté dans la bonne direction. Pour une raison inconnue, mon interface de bouclage n'avait pas d'adresse IP. Quoi qu'il en soit, le problème en question ne s'est pas encore manifesté après que j'ai réaffecté l'adresse IP correcte à ladite interface.
Larssend

Réponses:

2

En utilisant strace pour savoir sur ce qui est appelé par syscall Okular, il s'est avéré qu'il souhaitait connecter le service portmapper (port 111) sur localhost. L'interface de bouclage n'a pas d'adresse IP, pour une raison quelconque, et lui attribuer une adresse IP a résolu le problème.

dirkt
la source