web-dev-qa-db-fra.com

LSOPENURLSWITHROLE () Échec de l'erreur -10810 sur Yosemite de TMUX

Essayer d'ouvrir une application à partir de la ligne de commande (terminal.app), à l'intérieur tmux (installé via MacPorts, version 1.9a) et obtenir le résultat suivant:

$ open /Applications/Adobe\ Reader.app/
LSOpenURLsWithRole() failed with error -10810 for the file /Applications/Adobe Reader.app.

La même commande fonctionne bien, du même terminal, si exécuté en dehors de TMUX.

Enviroment devrait être lu depuis l'hôte; Ce qui suit est dans tmux.conf: set -g update-environment -r

Lors du redémarrage du terminal.app ou de TMUX, il est parfois erroné avec un message différent au début, (voir ci-dessous) et lorsque vous avez essayé à nouveau, l'erreur ci-dessus -10810 est donnée à la place.

$ open /Applications/Adobe\ Reader.app/
The window server could not be contacted.  open must be run with a user logged in at the console, either as that user or as root.

J'ai essayé les deux pommes propriétaires d'applications (aperçu, livre de polices, contacts) et tiers (Adobe, Evernote, etc.). Aucune différence. L'application qui semble fonctionner, est Finder. (open [dirname], par exemple.)

17
krissen

Il y a une solution/solution de contournement pour cela:

  • Mettez à jour votre version de reattach-to-user-namespace. Ceci est utilisé par TMUX pour exécuter des programmes. J'utilise Brew plutôt que Macports, alors j'ai juste fait: brew update; brew upgrade reattach-to-user-namespace. Macports est susceptible de pouvoir faire quelque chose de similaire.
  • Ajoutez ce qui suit à votre .tmux.conf déposer:

    set -g default-command "reattach-to-user-namespace -l /bin/bash"

Redémarrez votre session TMux et cela devrait vous permettre de démarrer des programmes à partir de la ligne de commande.

Des informations supplémentaires peuvent être trouvées à ce problème GITUB.

19
Brett

Le problème est que tmux est en train de changer le bootstrap au domaine du système quand il ne doit pas (voir https://trac.macports.org/ticket/18357 ). les versions plus anciennes de launchd ont travaillé ce bogue dans tmux, mais le launchd réécrite dans OS X Yosemite ne fonctionne pas autour de ce bogue tmux.

Vous devrez soit attendre Apple pour éventuellement libérer une mise à jour des travaux autour des bugs tmux ou développeurs Pester tmux pour résoudre ce bogue dans tmux qui a été connu depuis au moins 6 ans.